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