Hola, si, el problema que tienes es el tipico de pensar que el módulo usart del pic funciona de una forma determinada cuando en realidad funciona de otra. El modulo serie tiene 2 bytes de bufer de entrada, y si no se extraen antes que entre el tercero byte se bloquea y, deja de recibir datos hasta que se gestione el código de error que genera. Si no recuerdo mal la función del sistema hserin queda parada a la espera de recibir el byte de entrada, o más bytes si su variable de entrada es de mayor longitud, por lo que el waitms sobra en el programa que es el que bloquea el módulo.
En el índice de este hilo tienes toda la información para trabajar con el módulo usart del pic, no es para el pic que usas pero el módulo funciona igual.
http://www.todopic.com.ar/foros/index.php?topic=14917.msg186133#new2ª Otra posibilidad es que se bloquea el puerto USART de la placa en modo Rx y por lo tanto no recibe ningún tipo de dato más. Esto sucede si la UAR recibe los datos más rápido de lo que se extraen, entonces activa el flag de error y queda bloqueada la UAR en modo Rx hasta que se desbloquee mediante una rutina especial que tenemos que implementar en nuestro programa que es activada al verificar el flag de error UAR.
PD. En el índice hay varios ejemplos relacionados con WDT y USART con su control de errores más comunes.
WDT = Watchdog
http://www.todopic.com.ar/foros/index.php?topic=14917.680Este código funciona en el simulador, pero que funcione en un simulador no quiere decir que funcione en la realidad.
AllDigital
Define LCD_BITS = 4
Define LCD_DREG = PORTB
Define LCD_DBIT = 4
Define LCD_RSREG = PORTB
Define LCD_RSBIT = 0
Define LCD_EREG = PORTB
Define LCD_EBIT = 2
Define LCD_RWREG = PORTB
Define LCD_RWBIT = 1
Lcdinit 2
Dim i As Byte
Hseropen 9600
inicio:
While PIR1.RCIF = 1 'Espera hasta que entren datos al bufer serie.
Hserget i 'Hserget solo puede leer un byte.
Lcdout i
Wend
Goto inicio
'Recuerda que escribir en el display es una operación muy lenta por lo
'que no se pueden utilizar velocidades muy elevadas de lectura del puerto serie.