Comunicación serie con 16f84A

Oct 28, 2004 4 Replies
¡Hola!

Estoy realizando unas pruebas de comunicación entre un pic y un PC, he realizado una aplicación muy sencill para ver que todo va:



do { caracter = getc(); putc(caracter+1); } while (1);



Con esto he verificaco que la configuración de puerto es correcta.



ahora bien, he intentado hacer un programa que leea del puerto una cadena entera hasta recibir un caracter 13 (intro),



según la ayuda del CCS sería:



char bufer [40]; printf ("Inserta frases y terminalas con INTRO\r\n"); do { fgets(bufer,COM1); printf (bufer); } while (1); // bucle infinito



El problema esta en la función de captura (creo), que no lee bien la frase,... ¿que puede estar fallando?...


Muchas gracias,,, parece que funciona bien, seguiré tu ejemplo y gracias por la puntualización del printf, me estaba volviendo loco.

Una cosa mas, me queda una duda respecto al WDT, PERRO guardian.

¿He de insertarlo yo cada x instrucciones o me lo coloca el CCS?. Es que no veo que diga nada, solo he visto este ejemplo y parece ser que he de colocarlo yo. ¿es cierto?.

#fuses WDT // PCB/PCM example

main() {

setup_wdt(WDT_2304MS);

while (TRUE) {

restart_wdt();

perform_activity();

} }

En algun sitio vi una opcion apra que el compialdor lo inserte en las rutinas largas delay y demás de ese estilo. En el resto del programa seguro que tienes que hacerlo tu, cada cierto tiempo no cada cierto numero de instrucciones (bucles y cosas así)

Cierto, en la pestaña General dice si se aplica restar en los delay.....

Gracias por todo!

digo yo que no sería muy complejo el que el propio soft lo insertara, pero vamos, que si no lo hace es porque será mas complejo... debido a saltos y todo eso..

un saludo!

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required