TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: Hobbysta en 27 de Octubre de 2013, 18:23:11
-
Hola listeros, creo que esta es mi primer consulta.
Uso MPLAB 8.63.
Estoy tratando de compilar código de un proyecto obtenido en la web, con el fin de adaptarlo a mis necesidades.
Lo único que quiero lograr como primer paso, es poder compilar sin problemas el fuente original.
Pero me salen algunos mensajes, que no sé cómo o dónde informarme para solucionar y que dejen de impedir la compilación.
Salen varios de estos, que resumo aquí:
Clean: Deleting intermediary and output files.
Clean: Deleted file "C:\B-Medidor\medidor.mcs".
Clean: Done.
Executing: "C:\Program Files\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F873A "medidor.asm" /l"medidor.lst" /e"medidor.err" /o"medidor.o" /d__DEBUG=1
Message[305] C:\B-MEDIDOR\MEDIDOR.ASM 274 : Using default destination of 1 (file).
Message[302] C:\B-MEDIDOR\MEDIDOR.ASM 303 : Register in operand not in bank 0. Ensure that bank bits are correct.
Error[151] C:\B-MEDIDOR\MEDIDOR.ASM 945 : Operand contains unresolvable labels or is too complex
Message[302] C:\B-MEDIDOR\MEDIDOR.ASM 1133 : Register in operand not in bank 0. Ensure that bank bits are correct.
Halting build on first failure as requested.
----------------------------------------------------------------------
Debug build of project `C:\B-Medidor\medidor.mcp' failed.
Language tool versions: MPASMWIN.exe v5.39, mplink.exe v4.38, mplib.exe v4.38
Preprocessor symbol `__DEBUG' is defined.
Sun Oct 27 17:29:06 2013
----------------------------------------------------------------------
BUILD FAILED
Según lo que pude leer de la traduccción en ruso, el autor compiló usando ICD2 y MPLAB 7.42 ¿tendrá eso algo que ver?
Bueno, ojalá algún experto me pueda orientar, desde ya, agradecido por la bola que me pudieran dar.
Saludos, RAUL
-
Hola.
Las versiones en principio no tienen nada que ver.
Lo que hace que no te compile es este error
Error[151] C:\B-MEDIDOR\MEDIDOR.ASM 945 : Operand contains unresolvable labels or is too complex
Segun dice tienes un operando con problemas en la línea 945.
Sin el código es dificil opinar más.
Saludos
-
Gracias por responder.
Adjunto el archivo ASM.
Copio y pego aquí el fragmento en donde está la línea 945 que me señala el MPLAB (lo resalto en negrita):
Load_ZG
movlw b'01001000' ; AC in CGRAM=8
call CmdLCD
movlw HIGH Table
movwf PCLATH
movlw .16 ;2 çíàêà ïî 8 áàéò
movwf Count1
movlw LOW omega-1
movwf Count2 ;ñìåùåíèå â òàáëèöå
get_s call Table ;ïîëó÷èòü ñèìâîë èç òàáëèöû
call CharLCD
incf Count2,F
movf Count2,W
decfsz Count1,F
goto get_s
return
Espero que sirva para detectar algo más...
-
Realicé esta experiencia.
Puse como comentario el -1 después del omega, quedando así:
...
movlw LOW omega ;-1
...
Y compiló con éxito, aunque los warnings siguen estando.
¿Qué será ese -1?
-
Con esa prueba has quitado una parte de esa expresión y te ha funcionado,pero ahora el programa no se ejecutará bién.
Aunque solo transcribes una parte del programa me imagino que LOW omega tiene un valor constante definido al inicio, luego
LOW omega-1 sería ese valor restándole 1.
En los lenguajes de programación al asignar nombres creo que la norma es que no se dividan en dos o mas palabras, es decir
yo no habría puesto LOW omega sino LOW_omega.
Prueba de cambiarlo así.
En cuanto a los mensajes puedes evitarlos poniendo esta directiva: errorlevel -302 después del : LIST P=16Fxxxx.
En tu primer mensaje dices que no sabes donde informarte etc., bien para empezar siempre la mejor fuente (aparte de todopic que es buenísima)
es el fabricante,pon en el buscador de la web de Microchip esto: PICmicro Mid-Range MCU Family Reference Manual , ahí encontrarás mucha información útil
saludos.
-
Buen día, gracias por tu respuesta, solapower!
Acabo de descubrir una forma de que compile sin el error 151, sin tocar el código original.
Al abrir el proyecto, me pregunta si deseo generar código ABSOLUTE or RELOCATABLE.
Yo hasta ahora seleccionaba RELOCATABLE, y daba ese error, y hoy se me dio por elegir ABSOLUTE, y compiló sin error. :D
Es evidente que no tengo eperiencia en ASM...
Saludos!
-
Ahh, olvidé mencionarte que sí había subido el código completo, fijate que está como adjunto, en un mensaje anterior.
-
Efectivamente ,veo el código.
Como ves el despiste no es patrimonio exclusivo de nadie.
Saludos,me alegra lo hayas solucionado.