X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=led_plex%2Fmain.asm;h=b27f65ffef75ef487e4f37f33ec5c951209a28b3;hb=1ae3689334b273952e70ebbde465caa68fd14efd;hp=31300559e1d78b1c10e2b64144d6879e6f4ac7e3;hpb=df18c58bb7a380fd036a88b23282eeb19a1c42a5;p=my-code%2Fatmel.git diff --git a/led_plex/main.asm b/led_plex/main.asm index 3130055..b27f65f 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,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