Hola
Lo primero: ojo con repetir mensajes...... no está bien hacer eso, porque mira que necehvel ya te había contestado a la misma pregunta en el otro tema que has posteado también.... Procura no repetir mensajes, anda, que sino el foro es un lío.
Imagino que estás programando en basic, no? pues además hubiera sido bueno que tu mensaje estuviera en el subforo de basic. En fin, no te mosquees, es sólo para intentar que entre todo el foro funcione "guay".
Bueno, anda, lee el mensaje de nechevel que te ha dado una pista de cúal es tu error.
Por si acaso no lo pillas, date cuenta de que al introducir el valor de referencia en la expresión IF, estás metiendo un carácter que el compilador interpreta como inicio de comentario. Mira:
Codigo:
IF CABECERA_PAQUETE_L==H"44" ; Solicitud de Telemetría
a partir de la coma, ", el compilador se piensa que es un comentario, y en realidad establece la comparación así:
Codigo:
IF CABECERA_PAQUETE_L==H
no se verifica y por tanto en programa entra en el else.
Ya nos contarás.
Hola Kurdo22, aquí estoy otra vez.... A ver si reparo la metedura de gamba de antes.
Se me ocurre que puedes probar a cambiar las directivas, a ver si en la simulación se verifican las condiciones. Puedes hacer esto:
Codigo:
movf CABECERA_PAQUETE_L,W ;el dato entra en el registro de trabajo
sublw 0x44 ;esto es como if ((CABECERA_PAQUETE_L-0x44) != 0)
goto SOLICITUD_DATOS ;En caso de telecomando erroneo
goto SOLICITUD_TELEMETRIA ; aquí se verificaría tu else
Ya me contarás, ¿vale? yo las directivas IF/ELSE no las uso nunca en ensamblador, utilizo las operaciones orientadas a bits y el truquillo ese que te he puesto arriba... A ver si te sirve.
Oye MGL y como funciona?
Yo he puesto
Codigo:
PACIENCIA_CHECK:
btfss FLAG_PACIENCIA
lpumylt PORTA
return
y lo unico que veo es humo y mas humo... he pensado que puede ser problema del 7805 porque no le he puesto condensadores en la entrada y en la salida pero nose nose...