23b33c37deec5bcf948d3b2eb1bc084bd8926050
[my-code/atmel.git] / led_plex / main.asm
1 ; main file of led_plex project
2 ;
3 ; schematics: http://hackdaworld.org/download/led_plex/led_plex.png
4 ;
5 ; author: hackbard@hackdaworld.org
6 ;
7
8 ; device specific definition file
9 .include "../include/tn2313def.inc"
10
11 ; defines
12 .def    tmp1            = r16
13 .def    tmp2            = r17
14 .def    uart_rxtx       = r18
15 .def    hc595_sink      = r19
16 .def    hc595_source    = r20
17
18 ;
19 ; interrupts
20 ;
21
22 ; RESET
23 rjmp INIT
24
25 ; INT0
26 reti
27
28 ; INT1
29 reti
30
31 ; T1 CAPT1
32 reti
33
34 ; T1 COMP A
35 reti
36
37 ; T1 OVF1
38 rjmp T1_OVF
39
40 ; T0 OVF0
41 rjmp T0_OVF
42
43 ; UART RX
44 rjmp UART_RECEIVE
45
46 ; UART UDRE
47 reti
48
49 ; UART TX
50 reti
51
52 ; ANA COMP
53 reti
54
55 ; PCINT
56 reti
57
58 ; T1 COMP B
59 reti
60
61 ; T0 COMP A
62 reti
63
64 ; T0 COMP B
65 reti
66
67 ; USI START
68 reti
69
70 ; USI OVF
71 reti
72
73 ; EE READY
74 reti
75
76 ; WDT OVF
77 reti
78
79 ;
80 ; init and main code
81 ;
82
83 RESET:
84 INIT:
85
86         ; gio port init
87         rcall PORT_INIT
88
89         ; timer init
90         ;rcall TIMER_INIT
91
92         ; uart init
93         rcall UART_INIT
94
95         ; uart interrupt enable
96         rcall UART_INT_RX_INIT
97
98         ; set stackpointer
99         ldi tmp1,low(RAMEND)
100         out SPL,tmp1
101
102         ; global interrupt enable
103         ;sei 
104
105         ; signal ready output
106         ldi uart_rxtx,0x68
107         rcall UART_TX
108
109         ; testing ... DO NOT CONNECT LEDS BY NOW !!!
110         ldi hc595_sink,0xff
111         ldi hc595_source,0xff
112         rcall SET_HC595
113         ldi uart_rxtx,0x61
114         rcall UART_TX
115
116 MAIN:
117
118         ; loop forever
119         rjmp MAIN
120
121
122 ; include subroutines
123 .include "port.asm"
124 .include "timer.asm"
125 .include "uart.asm"
126
127
128 ;
129 ; interrupt routines
130 ;
131
132 T1_OVF:
133         reti
134
135 T0_OVF:
136         reti
137
138 UART_RECEIVE:
139         reti
140