X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=led_plex%2Fmain.asm;h=8a03d53ee219358e90b4fac8de1d3f69ba3a2a68;hb=a20f57e053845b7a56c66999e6887aa0cb8c711f;hp=32f1e7dd753146f76ed82136d081c1884cb2fd92;hpb=28f8496b45653e6db6fb3d3863f546a4b1a8b042;p=my-code%2Fatmel.git diff --git a/led_plex/main.asm b/led_plex/main.asm index 32f1e7d..8a03d53 100644 --- a/led_plex/main.asm +++ b/led_plex/main.asm @@ -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,9 +76,9 @@ reti ; WDT OVF reti - -; include control defines -.include "ctrl.def" +; +; init and main code +; RESET: INIT: @@ -82,8 +86,11 @@ 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 @@ -122,8 +134,17 @@ T1_OVF: reti T0_OVF: + + ; shift source + rol hc595_source + + ; update sink + + ; set hc595 + rcall SET_HC595 + reti -UART_RX: +UART_RECEIVE: reti