Buenas!
Tengo un problema en la comunicación entre el micro 18F4550 y la PC. Quiero enviar/recibir datos del micro al PC serialmente BaudRate 2400, 8N1, con un MAX232, pero siempre me da algun error. He utilizado Hyperterminal, el Serial Comunicator de MicroCode, Visual Basic y siempre el resultado es igual. He utilizado 300, 600, 1200.. hasta 9600 y tampoco cambia nada.
Cuando hago la simulación en Proteus con muchas variaciones que he probado siempre funciona correctamente, pero en físico me da problemas.
La parte del codigo que me da problemas es la sigiuente:
DEFINE OSC 4
DEFINE SER2_BITS 8 'He utilizaso Ser2_bits 9 y tampoco funciona.
INCLUDE "MODEDEFS.BAS"
PRUEBA VAR BYTE 'Con WORD es el mismo resultado
PINENVIA VAR PORTA.4
PINRECIBE VAR PORTA.5
INICIO:
SERIN2 PINRECIBE,396,[PRUEBA] 'Ya probe con los modos 16780, 33164 y 49548 y no funcionan.
LCDOUT $FE,1
LCDOUT $FE,2, "PRACT. NUM "
pause 100
LCDOUT $FE,$C0, "RECIBIDO ",#PRUEBA
PAUSE 1000
SEROUT2 PINENVIA,396,["OK"]
GOTO INICIO
Lo que recibe siempre se repite cada 7 u 8 letras aproximadamente.
Si el envio al micro "A", muestra en la LCD 12.
B muestra 48, C muestra 60, D muestra 192, E muestra 204. F muestra 240, G muestra 252, H muestra 0. Y luego se repite.
Siempre recibe estos numeros: 12 48 60 192 204 240 252 0 y nuevamente 12 48 60 192 204 240 252 0, etc, etc, etc...
Con las minusculas es lo mismo.
Si en SERIN2 utilizo DEC, HEX, STR muestra caracteres variados sin sentido.
Para SEROUT2 es lo mismo. Envio "OK" o cualquier variable y llegan simbolos como { ´ : ' [ y cosas por el estilo.
Con Serin, Serout, Hserin y Hserout tampoco funcionan.
Ya no se que más probar, velocidades distintas, pines distintos, modos distintos, etc... y nada. Cambie el Cristal, el Micro, el MAX232, el Cable serial, en otra PC y nada de nada.
Necesito ayuda urgente por favor!!!!!!!!