Hi! I am lost! I really tried but my code doesn't work properly, I tried to debug, but keeps an infinite loop, and to complicated more this i need send a bit to port b.
If port D pin is 1, a "walking bit" to the left is sent to port B.
Any help will be appreciated.
.NOLIST
.INCLUDE "8515def.inc"
.LIST
rjmp begin
begin:
ser r16 ; r16 = 0xFF
out DDRD,r16
clr r16 ; r16 = 0x00
out DDRB,r16
sbi PORTD,0
ldi r30,3
retraso1:
dec r30
breq sigue1
rjmp retraso1
sigue1:
cbi PORTD,0
ldi r30,3
retraso2:
dec r30
breq sigue2
rjmp retraso2
sigue2:
brne loop
loop:
sbi PORTB,6
ldi r30,3
retraso3:
dec r30
breq sigue3
rjmp retraso3
sigue3:
cbi PORTB,7
ldi r30,3
retraso4:
dec r30
breq sigue4
rjmp retraso4
sigue4:
sbi PORTB,6
ldi r30,3
retraso5:
dec r30
breq sigue5
rjmp retraso5
sigue5:
cbi PORTB,6
ldi r30,3
retraso6:
dec r30
breq sigue6
rjmp retraso6
sigue6:
sbi PORTB,5
ldi r30,3
retraso7:
dec r30
breq sigue7
rjmp retraso7
sigue7:
cbi PORTB,5
ldi r30,3
retraso8:
dec r30
breq sigue8
rjmp retraso8
sigue8:
sbi PORTB,4
ldi r30,3
retraso9:
dec r30
breq sigue9
rjmp retraso9
sigue9:
cbi PORTD,5
ldi r30,3
retraso10:
dec r30
breq sigue10
rjmp retraso10
sigue10:
sbi PORTB,3
ldi r30,3
retraso11:
dec r30
breq sigue11
rjmp retraso11
sigue11:
cbi PORTB,3
ldi r30,3
retraso12:
dec r30
breq sigue12
rjmp retraso12
sigue12:
sbi PORTB,2
ldi r30,3
retraso13:
dec r30
breq sigue13
rjmp retraso13
sigue13:
cbi PORTB,2
ldi r30,3
retraso14:
dec r30
breq sigue14
rjmp retraso14
sigue14:
sbi PORTB,1
ldi r30,3
retraso15:
dec r30
breq sigue15
rjmp retraso15
sigue15:
cbi PORTB,0
ldi r30,3
retraso16:
dec r30
breq sigue16
rjmp retraso16
sigue16:
sbi PORTB,0
ldi r30,3
retraso17:
dec r30
breq sigue17
rjmp retraso17
sigue17:
cbi PORTB,0
ldi r30,3
retraso18:
dec r30
breq sigue18
rjmp retraso18
sigue18:
in r16,PIND
andi r16,0b00000001
breq round_loop_longjmp
round_loop_longjmp:
rjmp loop