; main file of led_plex project
;
+; schematics: http://hackdaworld.org/download/led_plex/led_plex.png
+;
; author: hackbard@hackdaworld.org
;
.def tmp1 = r16
.def tmp2 = r17
.def uart_rxtx = r18
+.def hc595_sink = r19
+.def hc595_source = r20
;
; interrupts
rjmp T0_OVF
; UART RX
-rjmp UART_RX
+rjmp UART_RECEIVE
; UART UDRE
reti
; WDT OVF
reti
-
-; include control defines
-.include "ctrl.def"
+;
+; init and main code
+;
RESET:
INIT:
; gio port init
- rcall GIO_PORT_INIT
+ rcall PORT_INIT
+
+ ; timer0 init
+ rcall TIMER0_INIT
- ; timer init
- rcall TIMER_INIT
+ ; timer0 interrupt enable
+ rcall TIMER0_INT_INIT
; uart init
rcall UART_INIT
out SPL,tmp1
; global interrupt enable
- ;sei
+ sei
; signal ready output
- ldi uart_rxtx,0x23
+ ldi uart_rxtx,0x68
rcall UART_TX
+ ; led init
+ ldi hc595_sink,0xff
+ ldi hc595_source,0x01
+ rcall SET_HC595
+
MAIN:
; loop forever
reti
T0_OVF:
+
+ ; debug output
+ cbi PORTD,3
+
+ ; shift source
+ rol hc595_source
+
+ ; update sink
+
+ ; set hc595
+ rcall SET_HC595
+
+ ; debug output
+ sbi PORTD,3
+
reti
-UART_RX:
+UART_RECEIVE:
reti