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