Microcontroladores PIC en Linux.
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Problemillas Mayúsculas - minúsculas

2 participantes

Ir abajo

Problemillas Mayúsculas - minúsculas Empty Problemillas Mayúsculas - minúsculas

Mensaje por a16er70 Mar 1 Mar 2011 - 23:18

Hola.

Entre módulo y módulo de PCB entrenador que me estoy fabricando para hacer los primeros pinitos, saco de vez en cuando 5 minutos para hacer un programilla tonto que haga bailar leds en una protoboard para que mis hijos pequeños se entretengan mientras cenan.

Estos días de atrás me encontré con que el fichero .asm creado con Gedit y GCBasic, al pasarlo a PikLab y pretender compilar el proyecto para después grabarlo en el PIC, me daba un montón de errores ( cuando GC Basic había compilado sin problemas .... )

Hoy he dado con la respuesta : En el fichero .asm, GCBasic declara variables y funciones en letra minúscula, y después, en algunas partes del programa ( concretamnente en una subrutina ) las llama con mayúsculas. EL compilador se queja de que no las conoce.

Pongo el programa para que veáis de qué hablo .... y en rojo alguna de las palabras problemáticas...

La pregunta es ¿ alguien sabe por que pasa esto y cómo resolverlo ? ( la respuesta de "cambiar los nombres por los realmente declarados" "a pedal" ya se me ha ocurrido " a mí solito" ( como dice mi hija.... ))

Gracias y un saludo.

a16er70.



;Program compiled by Great Cow BASIC (0.9 10/9/2010)
;Need help? See the GCBASIC forums at http://sourceforge.net/forum/?group_id=169286,
;check the documentation or email w_cholmondeley@users.sourceforge.net.

;********************************************************************************

;Set up the assembler options (Chip type, clock source, other bits and pieces)
LIST p=16F628A, r=DEC
#include
__CONFIG _INTOSC_OSC_NOCLKOUT & _MCLRE_OFF & _LVP_OFF & _WDT_OFF & _PWRTE_OFF & _DATA_CP_OFF & _CP_OFF & _BODEN_OFF

;********************************************************************************

;Set aside memory locations for variables
DELAYTEMP EQU 112
DELAYTEMP2 EQU 113
SysCalcTempA EQU 117
SysCalcTempA_H EQU 118
SysCalcTempB EQU 121
SysCalcTempB_H EQU 122
SysCalcTempX EQU 112
SysCalcTempX_H EQU 113
SysWaitTempMS EQU 114
SysWaitTempMS_H EQU 115
DELAY EQU 32
DELAY_H EQU 33
I EQU 34
INCREMENTO EQU 35
INCREMENTO_H EQU 36
PAUSA EQU 37
PAUSA_H EQU 38
SysTemp1 EQU 39

;********************************************************************************

;Vectors
ORG 0
goto BASPROGRAMSTART
ORG 4
retfie

;********************************************************************************

;Start of program memory page 0
ORG 5
BASPROGRAMSTART
;Call initialisation routines
call INITSYS

;Start of the main program
banksel TRISA
clrf TRISA
clrf TRISB
clrf TRISB
MAIN
movlw 244
banksel PAUSA
movwf PAUSA
movlw 1
movwf PAUSA_H
movlw 10
movwf INCREMENTO
clrf INCREMENTO_H
clrf PORTB
movf PAUSA_H,W
movwf SysCalcTempA_H
movf PAUSA,W
movwf SysCalcTempA
movlw 50
movwf SysCalcTempB
clrf SysCalcTempB_H
call SysCompLessThan16
btfss SysCalcTempX,0
goto ENDIF1
movlw 255
movwf I
SysForLoop1
incf I,F
movlw 50
movwf SysWaitTempMS
clrf SysWaitTempMS_H
call Delay_MS
movf INCREMENTO,W
subwf PAUSA,W
movwf DELAY
movf INCREMENTO_H,W
btfss STATUS,C
addlw 1
subwf PAUSA_H,W
movwf DELAY_H
movwf PAUSA_H
movf DELAY,W
movwf PAUSA
movf I,W
movwf PORTB
movlw 15
subwf I,W
btfss STATUS, C
goto SysForLoop1
SysForLoopEnd1
ENDIF1
goto MAIN
BASPROGRAMEND
sleep
goto $

;********************************************************************************

Delay_MS
incf SysWaitTempMS_H, F
DMS_START
movlw 142
movwf DELAYTEMP2
DMS_OUTER
movlw 1
movwf DELAYTEMP
DMS_INNER
decfsz DELAYTEMP, F
goto DMS_INNER
decfsz DELAYTEMP2, F
goto DMS_OUTER
decfsz SysWaitTempMS, F
goto DMS_START
decfsz SysWaitTempMS_H, F
goto DMS_START
return

;********************************************************************************

INITSYS
movlw 7
movwf CMCON
clrf PORTA
clrf PORTB
return

;********************************************************************************

SYSCOMPLESSTHAN16
clrf SYSCALCTEMPX
movf SYSCALCTEMPA_H,W
subwf SYSCALCTEMPB_H,W
btfss STATUS,C
return
movf SYSCALCTEMPB_H,W
subwf SYSCALCTEMPA_H,W
btfss STATUS,C
goto SCLT16TRUE
movf SYSCALCTEMPB,W
subwf SYSCALCTEMPA,W
btfsc STATUS,C
return
SCLT16TRUE
comf SYSCALCTEMPX,F
return

;********************************************************************************


END

a16er70
Participante
Participante

Mensajes : 20
Fecha de inscripción : 12/12/2010
Localización : España - Boecillo

Volver arriba Ir abajo

Problemillas Mayúsculas - minúsculas Empty Re: Problemillas Mayúsculas - minúsculas

Mensaje por Pikitin Miér 2 Mar 2011 - 2:46

Hola a16er70.

Si.. el GcBasic es "case insensitive", para compilar el asm con Gputils hay que añadirle la opción -I (case insensitve).

En Piklab lo haces en "Opciones del Proyecto / Toolchain".

De todas formas GcBasic normalmente genera también el .hex, lo puedes abrir directamente desde piklab si quieres.


Saludos.

Pikitin
veterano
veterano

Mensajes : 623
Fecha de inscripción : 26/11/2008

http://linuxmicros.blogspot.com/

Volver arriba Ir abajo

Problemillas Mayúsculas - minúsculas Empty Funcionó el " -I "

Mensaje por a16er70 Miér 2 Mar 2011 - 20:42

Gracias por darme la solución, Pikitin.

Funcionó a la primera. Smile

Un saludo.

a16er70

a16er70
Participante
Participante

Mensajes : 20
Fecha de inscripción : 12/12/2010
Localización : España - Boecillo

Volver arriba Ir abajo

Problemillas Mayúsculas - minúsculas Empty Re: Problemillas Mayúsculas - minúsculas

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.