Autor Tema: Puerto Serie con PIC18F4520  (Leído 2236 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado diegolovec18

  • PIC10
  • *
  • Mensajes: 1
Puerto Serie con PIC18F4520
« en: 04 de Enero de 2009, 02:42:10 »
Quiero hacer un programa en c que mande Hola mundo a traves del puerto serie pero no tengo ni idea como empezarlo. Me podriais orientar con algun ejemplo?

He mirado un monton de manuales pero a la hora de probar algunos ejemplos que vienen no consigo que funcione ninguno debido que utilizan sobre todo los pic de la familia 16.

Espero vuestras respuestas pronto, Un saludo.

Desconectado xerex

  • PIC16
  • ***
  • Mensajes: 138
    • Mi servidor, mi casa.
Re: Puerto Serie con PIC18F4520
« Respuesta #1 en: 04 de Enero de 2009, 08:18:35 »
hola,

se puede hacer de la misma manera en cualquier familia, ya sea HW o emulacion SW. (esto debe estar en algun post ya)

yo utilizo el 18f2680 y lo hago asi:

en el fichero del proyecto prueba.h:

#include <18f2680.h>
#device adc=10

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES WDT128                   //Watch Dog Timer uses 1:128 Postscale
#FUSES INTRC_IO                 //Internal RC Osc, no CLKOUT
#FUSES NOPROTECT                //Code not protected from reading
#FUSES BROWNOUT                 //Reset when brownout detected
#FUSES BORV21                   //Brownout reset at 2.1V
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOCPD                    //No EE protection
#FUSES STVREN                   //Stack full/underflow will cause reset
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES LVP                      //Low Voltage Programming on B3(PIC16) or B5(PIC18)
#FUSES NOWRT                    //Program memory not write protected
#FUSES NOWRTD                   //Data EEPROM not write protected
#FUSES IESO                     //Internal External Switch Over mode enabled
#FUSES FCMEN                    //Fail-safe clock monitor enabled
#FUSES PBADEN                   //PORTB pins are configured as analog input channels on RESET
#FUSES BBSIZ4K                  //4K words Boot Block size
#FUSES NOWRTC                   //configuration not registers write protected
#FUSES NOWRTB                   //Boot block not write protected
#FUSES NOEBTR                   //Memory not protected from table reads
#FUSES NOEBTRB                  //Boot block not protected from table reads
#FUSES NOCPB                    //No Boot Block code protection
#FUSES LPT1OSC                  //Timer1 configured for low-power operation
#FUSES MCLR                     //Master Clear pin enabled
#FUSES NOXINST                  //Extended set extension and Indexed Addressing mode disabled (Legacy mode)

#use delay(clock=8000000)
#use rs232(baud=4800,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)

y en prueba.c
#include <prueba.h>

main()
{
set_tris_C(0b10010011); //definimos I/O del micro
while (1)
{
  printf ("hola mundo \n\r"); //enviamos la cadena "Hola mundo" indefinidamente a traves del pin C6 a 4800 bps
}

Para leerlo con el PC necesitas un adaptador de niveles el IC MAX232, ya que no es compatible la señal del PIC con los niveles del puerto 232 del PC. La definicion de prueba.h variara en funcion de las necesidades que tengas.

Si tienes problemas para enviar esto, comprueba que estas configurando correctamente el reloj.

Saludos.
Es falso eso de que el saber no ocupa lugar....


No se donde poner tanto libro.... :P

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Puerto Serie con PIC18F4520
« Respuesta #2 en: 04 de Enero de 2009, 09:00:56 »
¿Qué compilador de C tienes?
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado xerex

  • PIC16
  • ***
  • Mensajes: 138
    • Mi servidor, mi casa.
Re: Puerto Serie con PIC18F4520
« Respuesta #3 en: 04 de Enero de 2009, 10:37:31 »
 :(

Tienes toda la razon hay que saber que compilador tiene..

El codigo expuesto es para CCS.

Saludos.
Es falso eso de que el saber no ocupa lugar....


No se donde poner tanto libro.... :P