author | Tero Marttila <terom@fixme.fi> |
Fri, 14 May 2010 18:19:22 +0300 | |
changeset 31 | dfb246ecaf23 |
parent 30 | 5226e512755c |
child 32 | 7ceb76b5a104 |
permissions | -rw-r--r-- |
3 | 1 |
.nolist |
2 |
.include "m168def.inc" ; Same family as 328P |
|
3 |
.list |
|
4 |
||
5 |
;; Interrupt Vector |
|
6 |
.org 0x00 |
|
7 |
rjmp init |
|
8 |
||
18 | 9 |
.org OC1Aaddr |
30
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
10 |
; Timer/Counter1 Compare Output A |
18 | 11 |
rjmp Timer_OC1A |
12 |
||
30
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
13 |
.org OC0Aaddr |
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
14 |
; Timer/Counter0 Compare Output A |
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
15 |
rjmp Timer_OC0A |
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
16 |
|
3 | 17 |
.org SPIaddr |
18 |
rjmp SPI_Interrupt |
|
19 |
||
8 | 20 |
.org ADCCaddr |
21 |
rjmp ADC_Interrupt |
|
22 |
||
23
a6afc0eb347f
synchronous SPI, two-digit led7
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
23 |
.org 0x40 |
a6afc0eb347f
synchronous SPI, two-digit led7
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
24 |
|
a6afc0eb347f
synchronous SPI, two-digit led7
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
25 |
;; Syntax |
a6afc0eb347f
synchronous SPI, two-digit led7
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
26 |
.include "macros.inc" |
a6afc0eb347f
synchronous SPI, two-digit led7
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
27 |
|
3 | 28 |
;; SPI |
17
a7c668003a19
split led7seg.s into .inc modules, and update Makefile to use .s -> .hex, and above .inc's for led7seg
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
29 |
.include "spi.inc" |
3 | 30 |
|
31 |
;; LCD |
|
17
a7c668003a19
split led7seg.s into .inc modules, and update Makefile to use .s -> .hex, and above .inc's for led7seg
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
32 |
.include "led7seg.inc" |
3 | 33 |
|
28
51344df466ca
rename ShowADC -> ShowValue, and use DIP
Tero Marttila <terom@fixme.fi>
parents:
26
diff
changeset
|
34 |
;; DIPs |
51344df466ca
rename ShowADC -> ShowValue, and use DIP
Tero Marttila <terom@fixme.fi>
parents:
26
diff
changeset
|
35 |
.include "dip.inc" |
51344df466ca
rename ShowADC -> ShowValue, and use DIP
Tero Marttila <terom@fixme.fi>
parents:
26
diff
changeset
|
36 |
|
8 | 37 |
;; ADC |
17
a7c668003a19
split led7seg.s into .inc modules, and update Makefile to use .s -> .hex, and above .inc's for led7seg
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
38 |
.include "adc.inc" |
8 | 39 |
|
18 | 40 |
;; Timer |
30
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
41 |
.set TIMER0_CB_A = SPI_Update |
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
42 |
|
18 | 43 |
.include "timer.inc" |
44 |
||
17
a7c668003a19
split led7seg.s into .inc modules, and update Makefile to use .s -> .hex, and above .inc's for led7seg
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
45 |
;; Utils |
a7c668003a19
split led7seg.s into .inc modules, and update Makefile to use .s -> .hex, and above .inc's for led7seg
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
46 |
.include "delay.inc" |
25
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
47 |
.include "div.inc" |
7 | 48 |
|
25
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
49 |
Sleep_ADC: |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
50 |
; delay |
30
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
51 |
; rcall ADC_Read8 |
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
52 |
rcall DIP_Read8 |
25
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
53 |
|
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
54 |
; Sleep for 64 * var timer cycles |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
55 |
ldi r17, 64 |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
56 |
mul r16, r17 |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
57 |
mov XL, r0 |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
58 |
mov XH, r1 |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
59 |
|
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
60 |
rjmp Timer_Sleep |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
61 |
|
28
51344df466ca
rename ShowADC -> ShowValue, and use DIP
Tero Marttila <terom@fixme.fi>
parents:
26
diff
changeset
|
62 |
;; Show value |
51344df466ca
rename ShowADC -> ShowValue, and use DIP
Tero Marttila <terom@fixme.fi>
parents:
26
diff
changeset
|
63 |
Main_ShowValue: |
30
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
64 |
; DEBUG |
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
65 |
sbi PIND, PORTD7 |
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
66 |
|
25
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
67 |
; load value to r16 |
30
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
68 |
; rcall DIP_Read8 |
25
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
69 |
; rcall ADC_Read8 |
30
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
70 |
rcall Timer0_Read8 |
25
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
71 |
|
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
72 |
; display from r16 |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
73 |
rcall LED7_ShowHex |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
74 |
|
30
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
75 |
; wait |
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
76 |
rcall Sleep_ADC |
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
77 |
|
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
78 |
; ldi XL, 0 |
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
79 |
; ldi XH, 16 |
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
80 |
; rcall Timer_Sleep |
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
81 |
|
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
82 |
; rcall ADC_Read8 |
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
83 |
; mov r20, r16 |
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
84 |
; rcall VarDelay |
25
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
85 |
|
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
86 |
; continue |
28
51344df466ca
rename ShowADC -> ShowValue, and use DIP
Tero Marttila <terom@fixme.fi>
parents:
26
diff
changeset
|
87 |
rjmp Main_ShowValue |
25
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
88 |
|
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
89 |
;; Count down from F |
6 | 90 |
; Returns once we've hit zero |
91 |
Main_Countdown: |
|
16 | 92 |
; init from F |
17
a7c668003a19
split led7seg.s into .inc modules, and update Makefile to use .s -> .hex, and above .inc's for led7seg
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
93 |
ldi r24, LED7_F |
6 | 94 |
|
15
c8f3a514bbef
read SPI to r10, and use it (hack)
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
95 |
_count_loop: |
6 | 96 |
; display |
97 |
mov r16, r24 |
|
25
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
98 |
mov r16, r24 |
17
a7c668003a19
split led7seg.s into .inc modules, and update Makefile to use .s -> .hex, and above .inc's for led7seg
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
99 |
rcall LED7_Show |
6 | 100 |
|
101 |
; exit if zero |
|
102 |
tst r24 |
|
15
c8f3a514bbef
read SPI to r10, and use it (hack)
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
103 |
breq _count_end |
6 | 104 |
|
105 |
; count down |
|
106 |
dec r24 |
|
107 |
||
108 |
; wait... |
|
25
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
109 |
rcall Sleep_ADC |
6 | 110 |
|
111 |
; next |
|
15
c8f3a514bbef
read SPI to r10, and use it (hack)
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
112 |
rjmp _count_loop |
c8f3a514bbef
read SPI to r10, and use it (hack)
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
113 |
|
c8f3a514bbef
read SPI to r10, and use it (hack)
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
114 |
_count_end: |
c8f3a514bbef
read SPI to r10, and use it (hack)
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
115 |
; done |
c8f3a514bbef
read SPI to r10, and use it (hack)
Tero Marttila <terom@fixme.fi>
parents:
8
diff
changeset
|
116 |
ret |
6 | 117 |
|
25
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
118 |
;; Count up from 00 -> 255 |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
119 |
; Returns once done |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
120 |
Main_CountUp: |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
121 |
; init from 0 |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
122 |
ldi r24, 0 |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
123 |
|
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
124 |
_countup_loop: |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
125 |
; display |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
126 |
mov r16, r24 |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
127 |
rcall LED7_ShowDec |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
128 |
|
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
129 |
; wait... |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
130 |
rcall Sleep_ADC |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
131 |
|
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
132 |
; exit if zero |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
133 |
cpi r24, 255 |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
134 |
breq _countup_end |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
135 |
|
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
136 |
; count up |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
137 |
inc r24 |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
138 |
|
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
139 |
; continue |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
140 |
rjmp _countup_loop |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
141 |
|
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
142 |
_countup_end: |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
143 |
; done |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
144 |
ret |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
145 |
|
6 | 146 |
;; Blink between dot and empty |
147 |
Main_Blink: |
|
148 |
_blink_loop: |
|
149 |
; dot |
|
17
a7c668003a19
split led7seg.s into .inc modules, and update Makefile to use .s -> .hex, and above .inc's for led7seg
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
150 |
ldi r16, LED7_DOT |
25
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
151 |
ldi r17, LED7_EMPTY |
17
a7c668003a19
split led7seg.s into .inc modules, and update Makefile to use .s -> .hex, and above .inc's for led7seg
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
152 |
rcall LED7_Show |
6 | 153 |
|
154 |
; wait... |
|
25
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
155 |
rcall Sleep_ADC |
6 | 156 |
|
157 |
; empty |
|
17
a7c668003a19
split led7seg.s into .inc modules, and update Makefile to use .s -> .hex, and above .inc's for led7seg
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
158 |
ldi r16, LED7_EMPTY |
25
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
159 |
ldi r17, LED7_DOT |
17
a7c668003a19
split led7seg.s into .inc modules, and update Makefile to use .s -> .hex, and above .inc's for led7seg
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
160 |
rcall LED7_Show |
6 | 161 |
|
25
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
162 |
; wait... |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
163 |
rcall Sleep_ADC |
6 | 164 |
|
165 |
; loop |
|
166 |
rjmp _blink_loop |
|
167 |
||
168 |
;; Chase segments |
|
169 |
Main_Spin: |
|
170 |
_spin_init: |
|
171 |
; init from top |
|
172 |
ldi r24, 0b00000001 |
|
173 |
||
174 |
_spin_next: |
|
175 |
; display |
|
176 |
mov r16, r24 |
|
23
a6afc0eb347f
synchronous SPI, two-digit led7
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
177 |
mov r17, r24 |
a6afc0eb347f
synchronous SPI, two-digit led7
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
178 |
com r17 |
17
a7c668003a19
split led7seg.s into .inc modules, and update Makefile to use .s -> .hex, and above .inc's for led7seg
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
179 |
rcall LED7_ShowRaw |
6 | 180 |
|
18 | 181 |
; delay |
25
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
182 |
rcall Sleep_ADC |
33496b1a964f
show (hexa)decimal values on display from ADC or DIP
Tero Marttila <terom@fixme.fi>
parents:
23
diff
changeset
|
183 |
|
6 | 184 |
; next segment |
185 |
lsl r24 |
|
186 |
||
187 |
; go back to A if we hit G |
|
188 |
sbrc r24, 6 |
|
189 |
rjmp _spin_init |
|
190 |
||
191 |
rjmp _spin_next |
|
4 | 192 |
|
193 |
Main: |
|
3 | 194 |
init: |
195 |
; Stack |
|
196 |
ldi r16, high(RAMEND) |
|
197 |
ldi r17, low(RAMEND) |
|
198 |
out SPH, r16 |
|
199 |
out SPL, r17 |
|
200 |
||
201 |
; Enable interrupts |
|
202 |
sei |
|
203 |
||
8 | 204 |
; ADC (slowest to start up) |
23
a6afc0eb347f
synchronous SPI, two-digit led7
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
205 |
rcall ADC_Init |
18 | 206 |
|
207 |
; Timer |
|
208 |
rcall Timer_Init |
|
8 | 209 |
|
3 | 210 |
; SPI |
211 |
rcall SPI_Init |
|
212 |
||
8 | 213 |
; LCD (requires interrupts, blocks) |
17
a7c668003a19
split led7seg.s into .inc modules, and update Makefile to use .s -> .hex, and above .inc's for led7seg
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
214 |
rcall LED7_Init |
6 | 215 |
|
30
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
216 |
; DEBUG |
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
217 |
sbi DDRD, PORTD7 |
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
218 |
cbi PORTD, PORTD7 |
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
219 |
|
6 | 220 |
; Run |
30
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
221 |
; rcall Main_ShowValue |
5226e512755c
Use Timer0 for async SPI updates (semi-useful)
Tero Marttila <terom@fixme.fi>
parents:
28
diff
changeset
|
222 |
rcall Main_Spin |
28
51344df466ca
rename ShowADC -> ShowValue, and use DIP
Tero Marttila <terom@fixme.fi>
parents:
26
diff
changeset
|
223 |
; rcall Main_Countup |
17
a7c668003a19
split led7seg.s into .inc modules, and update Makefile to use .s -> .hex, and above .inc's for led7seg
Tero Marttila <terom@fixme.fi>
parents:
16
diff
changeset
|
224 |
; rcall Main_Countdown |
28
51344df466ca
rename ShowADC -> ShowValue, and use DIP
Tero Marttila <terom@fixme.fi>
parents:
26
diff
changeset
|
225 |
; rcall Main_Blink |
4 | 226 |
|
227 |
end: |
|
228 |
rjmp end |
|
229 |