Hola. Este programa ya compila, pero no funciona en la práctica. Porque por alguna razón, se queda atorado en el call. Estoy migrando de MPASM a Pic assembler, ya cheque la guía de microchip y no encontré algún cambio con esta instrucción. Espero puedan ayudarme, gracias
Este es el código.
PROCESSOR 18F4685
#include <xc.inc>
CONFIG OSC = XT
CONFIG PWRT = ON
CONFIG WDT = OFF
CONFIG LVP = OFF
CONFIG CP0 = OFF
CONFIG CP1 = OFF
CONFIG CP2 = OFF
CONFIG CP3 = OFF
CONFIG CPB = OFF
//----------------vector reset---------------
PSECT resetVec,class=CODE,reloc=2
resetVec:
PAGESEL main
goto main
PSECT code
main:
//Zona de declaracion de registros || constantes
/*
CBLOCK
display
ENDC
*/
display EQU 0x00
PAGESEL no_8
ORG 0x000
movlw 0x0f
movwf ADCON1
clrf TRISA
clrf TRISB
clrf TRISC
clrf TRISD
clrf TRISE
//Input PORTE
bsf TRISE, 0
bsf TRISE, 1
bsf TRISE, 2
//Input PORTB
bsf TRISB, 0
bsf TRISB, 1
bsf TRISB, 2
bsf TRISB, 3
//Input PORTA
bsf TRISA, 0
bsf TRISA, 1
bsf TRISA, 2
bsf TRISA, 3
clrf PORTA
clrf PORTB
clrf PORTC
clrf PORTD
clrf PORTE
bsf PORTA, 5; Pin de testeo
clrf display; limpio la variable
goto no_8
loop:
btfss PORTE, 0
goto loop
esp:
btfsc PORTE, 0
goto esp
incf display, 1
incf display, 1
btfss display, 3
goto no_8
clrf display
no_8:
movf display, 0 //mueve display al acumulador ("w")
call Tabla
bsf PORTC, 0; enciendo este led para saber si sale de "tabla"..., y no lo hace
movwf PORTD
goto loop
Tabla:
addwf PCL, 1
retlw 0x76;0
retlw 0x3F;2
retlw 0x38;4
retlw 0x77;6
END resetVec