Buen día,
Tengo este código,
que cuando debuggeo está todo bien, hace lo que quiero que haga (tres secuencias, LED's encienden de parecido al Knight Rider, luego ascendente a descendente y viceversa y luego del centro hacia afuera y viceversa) pero al momento de implementarlo no lo hace, sólo se quedan 4 LEDs en forma permanente y los otros 4 comienzan a encender intermitentemente, ¿qué está mal? intenté ponerle este delay pero sólo se quedan encendidos todos:
DELAY: MOV #$01, VAR1
LOOP2: MOV #$01, VAR2
LOOP1: DBNZ VAR2, LOOP1
DBNZ VAR1, LOOP2
RTS
Mil gracias
Tengo este código,
Código:
mainLoop:
MOV #$FF, PTBDD ; Se limpia puerto B
INC PTBD ; Se carga uno al puerto B
COMPARA:
LDA PTBD ; Se mueve el Puerto B a A
CMP #$80
BLO IZQ
CBEQA #$01, COMPARA2
COMPARA2: LDA PTBD
CMP #$01
BHI DER
CBEQA #$80, A1
A1: CBEQA #$01, RUT2
IZQ: LSL PTBD ;Rota el valor de Pto B
LDA PTBD
BRA COMPARA
DER: LSR PTBD
LDA PTBD
BRA COMPARA2
;INICIA SECUENCIA ASCENDENTE/DESCENDENTE
RUT2: BRSET 1, PTBD, CLEARB1
SET1: BSET 1, PTBD
BRSET 2, PTBD, CLEARB2
SET2: BSET 2, PTBD
BRSET 3, PTBD, CLEARB3
SET3: BSET 3, PTBD
BRSET 4, PTBD, CLEARB4
SET4: BSET 4, PTBD
BRSET 5, PTBD, CLEARB5
SET5: BSET 5, PTBD
BRSET 6, PTBD, CLEARB6
SET6: BSET 6, PTBD
BRSET 7, PTBD, CLEARB7
SET7: BSET 7, PTBD
CLEARB7: BCLR 7, PTBD
CLEARB6: BCLR 6, PTBD
CLEARB5: BCLR 5, PTBD
CLEARB4: BCLR 4, PTBD
CLEARB3: BCLR 3, PTBD
CLEARB2: BCLR 2, PTBD
CLEARB1: BCLR 1, PTBD
CLEARB0: BCLR 0, PTBD
BRA CENTRO
;COMIENZA RUTINA DE CENTRO HACIA AFUERA
CENTRO: BRCLR 3, PTBD, CUATRO
CUATRO: BRCLR 4, PTBD, SETB1
SETB1: BSET 3, PTBD
BSET 4, PTBD
BRCLR 2, PTBD, CINCO
CINCO: BRCLR 5, PTBD, SETB2
SETB2: BSET 2, PTBD
BSET 5, PTBD
BRCLR 1, PTBD, SEIS
SEIS: BRCLR 6, PTBD, SETB3
SETB3: BSET 1, PTBD
BSET 6, PTBD
BRCLR 0, PTBD, SIETE
SIETE: BRCLR 7, PTBD, SETB4
SETB4: BSET 0, PTBD
BSET 7, PTBD
BRA CLEARBITS1
;INICIA CICLO DE APAGADO DESDE CENTRO HACIA AFUERA
CLEARBITS1: BRSET 3, PTBD, CUATRO2 ;REVISAR SI ESTAN ENCENDIDOS
CUATRO2 BRSET 4, PTBD, CLEPAR4
CLEPAR4: BCLR 3, PTBD
BCLR 4, PTBD
BCLR 2, PTBD
BCLR 5, PTBD
BCLR 1, PTBD
BCLR 6, PTBD
BCLR 0, PTBD
BCLR 7, PTBD
BRA AFUERA
; INICIA CICLO DE ENCENDIDO DESDE AFUERA HACIA ADENTRO
AFUERA: BRCLR 0, PTBD, SIET
SIET: BRCLR 7, PTBD, STBIT1
STBIT1: BSET 0, PTBD
BSET 7, PTBD
BRCLR 1, PTBD, SEIS2
SEIS2: BRCLR 6, PTBD, STBIT2
STBIT2: BSET 1, PTBD
BSET 6, PTBD
BRCLR 2, PTBD, CINC
CINC: BRCLR 5, PTBD, STBIT3
STBIT3: BSET 2, PTBD
BSET 5, PTBD
BRCLR 3, PTBD, CUAT
CUAT: BRCLR 4, PTBD, STBIT4
STBIT4: BSET 3, PTBD
BSET 4, PTBD
BRA CLEARBITS
CLEARBITS: BRSET 0, PTBD, SIETE2
SIETE2: BRSET 7, PTBD, CLEARPAR1
CLEARPAR1: BCLR 0, PTBD
BCLR 7, PTBD
CLEARPAR2: BCLR 1, PTBD
BCLR 6, PTBD
CLEARPAR3: BCLR 2, PTBD
BCLR 5, PTBD
CLEARPAR4: BCLR 3, PTBD
BCLR 4, PTBD
JSR mainLoop
NOP
JSR mainLoop
DELAY: MOV #$01, VAR1
LOOP2: MOV #$01, VAR2
LOOP1: DBNZ VAR2, LOOP1
DBNZ VAR1, LOOP2
RTS
Mil gracias
Última edición por un moderador: