new prescaler + debug outs
[my-code/atmel.git] / led_plex / main.asm
index cfa8c2e..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
@@ -31,13 +35,13 @@ reti
 reti
 
 ; T1 OVF1
-rjmp T1_OVF1
+rjmp T1_OVF
 
 ; T0 OVF0
-rjmp T0_OVF0
+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:
 
-       ; port init
+       ; gio port init
        rcall PORT_INIT
 
-       ; timer init
-       rcall TIMER_INIT
+       ; timer0 init
+       rcall TIMER0_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
@@ -118,12 +130,27 @@ MAIN:
 ; interrupt routines
 ;
 
-T1_OVF1:
+T1_OVF:
        reti
 
-T0_OVF0:
+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