Hola a todos
Llevo algún tiempo escribiendo un programa en C para el PIC16F877A que debe comunicarse con el pc, y simulando el circuito en el proteus funciona de maravilla. No obstante, al programar el pic me encuentro con que no funciona.
Tras varias pruebas he visto que el problema está en la conexión serie entre el pc y el PIC.
He comprobado el HW y funciona bien, puesto que conectando entre sí los cables que deberían unir MAX233 y PIC puedo ver en el hyperterminal los caracteres que envío.
También escojo la misma tasa en baudios tanto en el hyperterminal como en el programa. También he probado con tasas menores.
También he probado programas sencillos para enviar y/o recibir caracteres, y ninguno funciona correctamente. Por ejemplo:
#include <16F877A.h>
#fuses NOWDT,HS, PUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=6000000)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N)
void main()
{
while(1) {
putc( getc()+1); }}
Debería (de hecho en el proteus así lo hace) devolver el caracter siguiente (si escribo A obtengo B, si B, C, etc). Sin embargo en el hypeterminal leo a veces a, a veces b , a veces ax...
¿Podríais darme alguna idea sobre qué puede estar pasando?
Muchísimas gracias, un saludo