; main file of led_plex project ; ; schematics: http://hackdaworld.org/download/led_plex/led_plex.png ; ; author: hackbard@hackdaworld.org ; ; device specific definition file .include "../include/tn2313def.inc" ; defines .def tmp1 = r16 .def tmp2 = r17 .def uart_rxtx = r18 .def hc595_sink = r19 .def hc595_source = r20 ; ; interrupts ; ; RESET rjmp INIT ; INT0 reti ; INT1 reti ; T1 CAPT1 reti ; T1 COMP A reti ; T1 OVF1 rjmp T1_OVF ; T0 OVF0 rjmp T0_OVF ; UART RX rjmp UART_RECEIVE ; UART UDRE reti ; UART TX reti ; ANA COMP reti ; PCINT reti ; T1 COMP B reti ; T0 COMP A reti ; T0 COMP B reti ; USI START reti ; USI OVF reti ; EE READY reti ; WDT OVF reti ; ; init and main code ; RESET: INIT: ; gio port init rcall PORT_INIT ; timer0 init rcall TIMER0_INIT ; timer0 interrupt enable rcall TIMER0_INT_INIT ; uart init rcall UART_INIT ; uart interrupt enable rcall UART_INT_RX_INIT ; set stackpointer ldi tmp1,low(RAMEND) out SPL,tmp1 ; global interrupt enable sei ; signal ready output ldi uart_rxtx,0x68 rcall UART_TX ; led init ldi hc595_sink,0xff ldi hc595_source,0x01 rcall SET_HC595 MAIN: ; loop forever rjmp MAIN ; include subroutines .include "port.asm" .include "timer.asm" .include "uart.asm" ; ; interrupt routines ; 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_RECEIVE: reti