Hola Amigos
Se me ha presentado un problema.
Tengo un 628 con 2 puertos seriales, uno por el USART por harware y otro usando interrupcion externa en RB0 para recepcion y el RB4 como XMIT.
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B4,rcv=PIN_B0,bits=8,stream=PC,errors)
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8,stream=PC2,errors)
Ambos puertos usan MAX232, correctamente configurados y probados satisfactoriamente.
Sucede que he usado el INTRC_IO como reloj a 4 MHz, y el USART por hardware funciona perfecto, pero el RS232 por software entrega caracteres ilegibles...
Pensando que el MAX232 estaba malo, intercambie ambos puertos en ambos MAX232, y siempre el usart por harware funcion bien, a diferencia del usart por software.....
Despues cambie el pin RB4 por el RB5, RB6 y RB7, siempre con los mismos resultados..
Lo ultimo que hice fue usar el RB4 como xmit pero esta vez usando
#fuses XT
Con esto ambos puertos funciona a la perfeccion....
#include <16F628.h>
//#fuses INTRC_IO
#fuses XT
#fuses NOWDT
#fuses PUT
#fuses BROWNOUT
#fuses NOPROTECT
#fuses MCLR
#fuses NOLVP
#fuses NOCPD
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B4,rcv=PIN_B0,bits=8,stream=PC,errors)
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8,stream=r520m,errors)
//
// baud=38400 maximo usando 4 Mhz
//
////////////////////////////////////////////////////////////////////////////////
Alguien me podría orientar sobre esta situacion, o tiene alguna idea de lo que está pasando...
Muchas gracias