projects
/
my-code
/
atmel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
arrrrgh!
[my-code/atmel.git]
/
led_plex
/
port.asm
diff --git
a/led_plex/port.asm
b/led_plex/port.asm
index
55e90e2
..
f57bda9
100644
(file)
--- a/
led_plex/port.asm
+++ b/
led_plex/port.asm
@@
-6,10
+6,20
@@
PORT_INIT:
ldi tmp1,0x0f
out DDRB,tmp1
ldi tmp1,0x0f
out DDRB,tmp1
- ; g, rck, sck -> low / scl -> high
- ldi tmp1,0x07
- out PORTB,tmp1
- sbi PORTB,3
+ ; disable hc595 outputs
+ sbi PORTB,0
+
+ ; rck -> low
+ cbi PORTB,1
+
+ ; clear hc595 registers
+ cbi PORTB,3
+
+ ; rck -> high (store shift register data)
+ sbi PORTB,1
+
+ ; enable outputs
+ cbi PORTB,0
; port d 6 -> output
sbi DDRD,6
; port d 6 -> output
sbi DDRD,6
@@
-17,12
+27,27
@@
PORT_INIT:
; ser -> low
cbi PORTD,6
; ser -> low
cbi PORTD,6
+ ; port d 2 -> output (debug clk!)
+ sbi DDRD,2
+
+ ; port d 3 -> output (debug vertical!)
+ sbi DDRD,3
+
+ ; release hc595 register clear
+ sbi PORTB,3
+
ret
SET_HC595:
; storage clock -> low
ret
SET_HC595:
; storage clock -> low
- cbi PORTD,1
+ cbi PORTB,1
+
+ ; zero to everything ...
+ cbi PORTB,3 ; clear hc595 registers
+ sbi PORTB,1 ; store shift register data
+ cbi PORTB,1 ; release hc595 register clear
+ sbi PORTB,3 ; storage clock -> low
; source driver
; source driver
@@
-30,8
+55,14
@@
SET_HC595:
cbi PORTB,2
; set ser line
cbi PORTD,6
cbi PORTB,2
; set ser line
cbi PORTD,6
- sbrc hc595_source,
7
+ sbrc hc595_source,
0
sbi PORTD,6
sbi PORTD,6
+.ifdef DEBUG_PORTS
+ ldi uart_rxtx,0x30
+ sbrc hc595_source,0
+ ldi uart_rxtx,0x31
+ rcall UART_TX
+.endif
; clock -> high
sbi PORTB,2
; clock -> high
sbi PORTB,2
@@
-39,8
+70,14
@@
SET_HC595:
cbi PORTB,2
; set ser line
cbi PORTD,6
cbi PORTB,2
; set ser line
cbi PORTD,6
- sbrc hc595_source,
6
+ sbrc hc595_source,
1
sbi PORTD,6
sbi PORTD,6
+.ifdef DEBUG_PORTS
+ ldi uart_rxtx,0x30
+ sbrc hc595_source,1
+ ldi uart_rxtx,0x31
+ rcall UART_TX
+.endif
; clock -> high
sbi PORTB,2
; clock -> high
sbi PORTB,2
@@
-48,8
+85,14
@@
SET_HC595:
cbi PORTB,2
; set ser line
cbi PORTD,6
cbi PORTB,2
; set ser line
cbi PORTD,6
- sbrc hc595_source,
5
+ sbrc hc595_source,
2
sbi PORTD,6
sbi PORTD,6
+.ifdef DEBUG_PORTS
+ ldi uart_rxtx,0x30
+ sbrc hc595_source,2
+ ldi uart_rxtx,0x31
+ rcall UART_TX
+.endif
; clock -> high
sbi PORTB,2
; clock -> high
sbi PORTB,2
@@
-57,8
+100,14
@@
SET_HC595:
cbi PORTB,2
; set ser line
cbi PORTD,6
cbi PORTB,2
; set ser line
cbi PORTD,6
- sbrc hc595_source,
4
+ sbrc hc595_source,
3
sbi PORTD,6
sbi PORTD,6
+.ifdef DEBUG_PORTS
+ ldi uart_rxtx,0x30
+ sbrc hc595_source,3
+ ldi uart_rxtx,0x31
+ rcall UART_TX
+.endif
; clock -> high
sbi PORTB,2
; clock -> high
sbi PORTB,2
@@
-66,8
+115,14
@@
SET_HC595:
cbi PORTB,2
; set ser line
cbi PORTD,6
cbi PORTB,2
; set ser line
cbi PORTD,6
- sbrc hc595_source,
3
+ sbrc hc595_source,
4
sbi PORTD,6
sbi PORTD,6
+.ifdef DEBUG_PORTS
+ ldi uart_rxtx,0x30
+ sbrc hc595_source,4
+ ldi uart_rxtx,0x31
+ rcall UART_TX
+.endif
; clock -> high
sbi PORTB,2
; clock -> high
sbi PORTB,2
@@
-75,8
+130,14
@@
SET_HC595:
cbi PORTB,2
; set ser line
cbi PORTD,6
cbi PORTB,2
; set ser line
cbi PORTD,6
- sbrc hc595_source,
2
+ sbrc hc595_source,
5
sbi PORTD,6
sbi PORTD,6
+.ifdef DEBUG_PORTS
+ ldi uart_rxtx,0x30
+ sbrc hc595_source,5
+ ldi uart_rxtx,0x31
+ rcall UART_TX
+.endif
; clock -> high
sbi PORTB,2
; clock -> high
sbi PORTB,2
@@
-84,8
+145,14
@@
SET_HC595:
cbi PORTB,2
; set ser line
cbi PORTD,6
cbi PORTB,2
; set ser line
cbi PORTD,6
- sbrc hc595_source,
1
+ sbrc hc595_source,
6
sbi PORTD,6
sbi PORTD,6
+.ifdef DEBUG_PORTS
+ ldi uart_rxtx,0x30
+ sbrc hc595_source,6
+ ldi uart_rxtx,0x31
+ rcall UART_TX
+.endif
; clock -> high
sbi PORTB,2
; clock -> high
sbi PORTB,2
@@
-93,8
+160,14
@@
SET_HC595:
cbi PORTB,2
; set ser line
cbi PORTD,6
cbi PORTB,2
; set ser line
cbi PORTD,6
- sbrc hc595_source,
0
+ sbrc hc595_source,
7
sbi PORTD,6
sbi PORTD,6
+.ifdef DEBUG_PORTS
+ ldi uart_rxtx,0x30
+ sbrc hc595_source,7
+ ldi uart_rxtx,0x31
+ rcall UART_TX
+.endif
; clock -> high
sbi PORTB,2
; clock -> high
sbi PORTB,2
@@
-106,6
+179,12
@@
SET_HC595:
cbi PORTD,6
sbrc hc595_sink,7
sbi PORTD,6
cbi PORTD,6
sbrc hc595_sink,7
sbi PORTD,6
+.ifdef DEBUG_PORTS
+ ldi uart_rxtx,0x30
+ sbrc hc595_sink,7
+ ldi uart_rxtx,0x31
+ rcall UART_TX
+.endif
; clock -> high
sbi PORTB,2
; clock -> high
sbi PORTB,2
@@
-115,6
+194,12
@@
SET_HC595:
cbi PORTD,6
sbrc hc595_sink,6
sbi PORTD,6
cbi PORTD,6
sbrc hc595_sink,6
sbi PORTD,6
+.ifdef DEBUG_PORTS
+ ldi uart_rxtx,0x30
+ sbrc hc595_sink,6
+ ldi uart_rxtx,0x31
+ rcall UART_TX
+.endif
; clock -> high
sbi PORTB,2
; clock -> high
sbi PORTB,2
@@
-124,6
+209,12
@@
SET_HC595:
cbi PORTD,6
sbrc hc595_sink,5
sbi PORTD,6
cbi PORTD,6
sbrc hc595_sink,5
sbi PORTD,6
+.ifdef DEBUG_PORTS
+ ldi uart_rxtx,0x30
+ sbrc hc595_sink,5
+ ldi uart_rxtx,0x31
+ rcall UART_TX
+.endif
; clock -> high
sbi PORTB,2
; clock -> high
sbi PORTB,2
@@
-133,6
+224,12
@@
SET_HC595:
cbi PORTD,6
sbrc hc595_sink,4
sbi PORTD,6
cbi PORTD,6
sbrc hc595_sink,4
sbi PORTD,6
+.ifdef DEBUG_PORTS
+ ldi uart_rxtx,0x30
+ sbrc hc595_sink,4
+ ldi uart_rxtx,0x31
+ rcall UART_TX
+.endif
; clock -> high
sbi PORTB,2
; clock -> high
sbi PORTB,2
@@
-142,6
+239,12
@@
SET_HC595:
cbi PORTD,6
sbrc hc595_sink,3
sbi PORTD,6
cbi PORTD,6
sbrc hc595_sink,3
sbi PORTD,6
+.ifdef DEBUG_PORTS
+ ldi uart_rxtx,0x30
+ sbrc hc595_sink,3
+ ldi uart_rxtx,0x31
+ rcall UART_TX
+.endif
; clock -> high
sbi PORTB,2
; clock -> high
sbi PORTB,2
@@
-151,6
+254,12
@@
SET_HC595:
cbi PORTD,6
sbrc hc595_sink,2
sbi PORTD,6
cbi PORTD,6
sbrc hc595_sink,2
sbi PORTD,6
+.ifdef DEBUG_PORTS
+ ldi uart_rxtx,0x30
+ sbrc hc595_sink,2
+ ldi uart_rxtx,0x31
+ rcall UART_TX
+.endif
; clock -> high
sbi PORTB,2
; clock -> high
sbi PORTB,2
@@
-160,6
+269,12
@@
SET_HC595:
cbi PORTD,6
sbrc hc595_sink,1
sbi PORTD,6
cbi PORTD,6
sbrc hc595_sink,1
sbi PORTD,6
+.ifdef DEBUG_PORTS
+ ldi uart_rxtx,0x30
+ sbrc hc595_sink,1
+ ldi uart_rxtx,0x31
+ rcall UART_TX
+.endif
; clock -> high
sbi PORTB,2
; clock -> high
sbi PORTB,2
@@
-169,6
+284,12
@@
SET_HC595:
cbi PORTD,6
sbrc hc595_sink,0
sbi PORTD,6
cbi PORTD,6
sbrc hc595_sink,0
sbi PORTD,6
+.ifdef DEBUG_PORTS
+ ldi uart_rxtx,0x30
+ sbrc hc595_sink,0
+ ldi uart_rxtx,0x31
+ rcall UART_TX
+.endif
; clock -> high
sbi PORTB,2
; clock -> high
sbi PORTB,2