new prescaler + debug outs
[my-code/atmel.git] / led_plex / main.asm
index 3130055..b27f65f 100644 (file)
@@ -1,5 +1,7 @@
 ; main file of led_plex project
 ;
+; schematics: http://hackdaworld.org/download/led_plex/led_plex.png
+;
 ; author: hackbard@hackdaworld.org
 ;
 
@@ -10,6 +12,8 @@
 .def   tmp1            = r16
 .def   tmp2            = r17
 .def   uart_rxtx       = r18
+.def   hc595_sink      = r19
+.def   hc595_source    = r20
 
 ;
 ; interrupts
@@ -37,7 +41,7 @@ rjmp T1_OVF
 rjmp T0_OVF
 
 ; UART RX
-rjmp UART_RX
+rjmp UART_RECEIVE
 
 ; UART UDRE
 reti
@@ -72,18 +76,21 @@ 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
@@ -96,12 +103,17 @@ 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
@@ -122,8 +134,23 @@ T1_OVF:
        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