TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: kurdo22 en 11 de Octubre de 2004, 09:59:00
-
Cuando uso la directiva IF del MPLAB me da unos warning que no se a que se debe. Yo hago lo siguente:
IF CABECERA_PAQUETE_L == H"00"
goto COMIENZO_CONEXION
ELSE
goto FINAL_CONEXION
ENDIF
Me da los siguiente warnings:
Warning[205] C:WINDOWSESCRITORIOPROGRAMACIONPAQUETES_INTERPRETACION.ASM 98 : Found directive in column 1. (IF)
Warning[205] C:WINDOWSESCRITORIOPROGRAMACIONPAQUETES_INTERPRETACION.ASM 105 : Found directive in column 1. (ENDIF)
¿A que se debe?
-
Hola Kurdo,
Si no estoy mal, el warning que te aparece se debe a que colocas las directivas IF y ENDIF en la primera columna del editor (en la columna de los labels). Para corregirlo solamente escribe las directivas en la columna de instrucciones (un TAB desde la primera columna).
Saludos.
-
Muchas gracias nechevel, ese era el problema. Un saludo y gracias de nuevo.
-
Buenas, el otro dia me solucionaste un problemilla con la directiva if. Me preguntaba si podrias ayuarme con este otro problemilla que me ha surgido con el IF. Tengo un problema con la directiva IF. Siempre me coge el caso ELSE, aunque el IF sea verdadero. Lo he simulado y se me va al ELSE.Complila perfectamete, no da warning ni error. He comprobado que la variable que comparo tiene el dato igual al que quiero comparar y nada. A continuacion te dejo el programa a ver si podeis decirme algo.
Por lo que he podido ver en la documetacion el IF compara una expresion, y creo que yo comparo una variable. ¿Puede estar ahi el problema? De ser asi, ¿como declaro una expresion, o son lo mismo?
LIST P=18F8720 ;Tipo de procesador
INCLUDE <P18F8720.INC> ;Definicion de registros internos
TXDATO equ 0x19
RXDATO equ 0x1A
CONTADOR equ 0x12
CABECERA_PAQUETE_H equ 0x1B ;Variables TELECOMANDO
CABECERA_PAQUETE_L equ 0x1C
FIN_PAQUETE_H equ 0x1D
FIN_PAQUETE_L equ 0x1E
ESTADO_H equ 0x1F
ESTADO_L equ 0x20
INICIO
.....
.....
IF CABECERA_PAQUETE_L==H"44" ; Solicitud de Telemetría
goto SOLICITUD_TELEMETRIA
ELSE
goto SOLICITUD_DATOS ;En caso de telecomando erroneo
ENDIF ;se envia telemetría
.....
.....
SOLICITUD_TELEMETRIA
....
....
SOLICITUD_DATOS
....
....
-
Hola Kurdo.
En apariencia no se ve nada mal, aunque me deja una duda el valor que le das a la variable: CABECERA_PAQUETE_L==H"44".
Si el valor de la variable es 44 hexadecimal, ponlo así y pruébalo: CABECERA_PAQUETE_L == 44.
Cuéntame a ver que ocurre.
-
saludos.. de verdad esta rara esa asiganacion del valor H"44"
para cargar un valor decimal vas con poner un punto antes del valor ejemplo movlw .10
en hexa seria movlw 0AH
en binario seria movlw b"00001010"
no se porq todo el mundo usa notaciones tan raras si son tan senciyas!!!!