projects
/
my-code
/
atmel.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f24e742
)
increased wait
author
hackbard
<hackbard>
Sun, 7 Dec 2003 22:11:14 +0000
(22:11 +0000)
committer
hackbard
<hackbard>
Sun, 7 Dec 2003 22:11:14 +0000
(22:11 +0000)
beginners/test_port_d.asm
patch
|
blob
|
history
diff --git
a/beginners/test_port_d.asm
b/beginners/test_port_d.asm
index
0e31045
..
8dc6e44
100644
(file)
--- a/
beginners/test_port_d.asm
+++ b/
beginners/test_port_d.asm
@@
-1,47
+1,55
@@
.include "../include/2313def.inc"
INIT:
.include "../include/2313def.inc"
INIT:
-ldi r31,0
-ldi r30,0
-ldi r29,0
-out DDRD,r29 ; select all pins as input
-jmp DECIDE
+ldi r31,0 ; wait counter
+ldi r30,0 ; decide counter
+ldi r29,0 ; another wait counter
+ldi r28,1 ; constant
+out DDRD,r30 ; select all pins as input
+rjmp DECIDE ; goto decide
DECIDE:
DECIDE:
-ad
iw r30,
1
-cp r30,0
+ad
d r30,r28 ; add 1 to decission counter .. so we start with SET_
1
+cp
i
r30,0
breq SET_0
breq SET_0
-cp r30,1
+cp
i
r30,1
breq SET_1
breq SET_1
-cp r30,2
+cp
i
r30,2
breq SET_2
breq SET_2
-ldi r30,0
-jmp DECIDE
+ldi r30,0
; now begin with SET_0
+
r
jmp DECIDE
SET_0:
ldi r16,0
SET_0:
ldi r16,0
-sbr r16,14
+sbr r16,14
; ports 3,4,5
out PORTD,r16
out PORTD,r16
-jmp WAIT
+
r
jmp WAIT
SET_1:
ldi r16,0
SET_1:
ldi r16,0
-sbr r16,48
+sbr r16,48
; ports 6,7
out PORTD,r16
out PORTD,r16
-jmp WAIT
+
r
jmp WAIT
SET_2:
ldi r16,0
SET_2:
ldi r16,0
-sbr r16,42
+sbr r16,42
; ports 3,5,7
out PORTD,r16
out PORTD,r16
-jmp WAIT
+
r
jmp WAIT
WAIT:
WAIT:
-adiw r31,1
-cpi r31,0xff
-breq RESET
-jmp WAIT
+ldi r29,0 ; reset inner wait counter
+add r31,r28 ; increment wait counter
+cpi r31,0xff ; after 255 steps
+breq RESET ; reset wait counter
+rjmp WAIT_MORE
+
+WAIT_MORE:
+add r29,r28 ; increment inner wait loop counter
+cpi r29,0xff ; goto first wait loop after 255 cycles
+breq WAIT
+rjmp WAIT_MORE
RESET:
ldi r31,0
RESET:
ldi r31,0
-jmp DECIDE
+
r
jmp DECIDE