Академический Документы
Профессиональный Документы
Культура Документы
inc"
programa:
ldi r16,high(ramend)
out sph,r16
ldi r16,low(ramend)
out spl,r16
ldi r16,0xff
out ddrc,r16
out ddrd,r16
ldi r16,0x00
out ddra,r16
inicio:
in r16,pina
cpi r16,0x01
breq giro_x
cpi r16,0x02
breq giro_y
cpi r16,0x04
breq giro_ambos
jmp inicio
giro_x:
ldi r16,0x01
out portc,r16
call retardo
ldi r16,0x02
out portc,r16
call retardo
ldi r16,0x04
out portc,r16
call retardo
ldi r16,0x08
out portc,r16
jmp inicio
giro_y:
ldi r16,0x01
out portd,r16
call retardo
ldi r16,0x02
out portd,r16
call retardo
ldi r16,0x04
out portd,r16
call retardo
ldi r16,0x08
out portd,r16
jmp inicio
giro_ambos:
ldi r16,0x01
out portc,r16
out portd,r16
call retardo
ldi r16,0x02
out portc,r16
out portd,r16
call retardo
ldi r16,0x04
out portc,r16
out portd,r16
call retardo
ldi r16,0x08
out portc,r16
out portd,r16
jmp inicio
retardo:
; =============================
; delay loop generator
; 160000 cycles:
; -----------------------------
; delaying 159975 cycles:
ldi R17, $E1
WGLOOP0: ldi R18, $EC
WGLOOP1: dec R18
brne WGLOOP1
dec R17
brne WGLOOP0
; -----------------------------
; delaying 24 cycles:
ldi R17, $08
WGLOOP2: dec R17
brne WGLOOP2
; -----------------------------
; delaying 1 cycle:
nop
; =============================
ret