equal
deleted
inserted
replaced
5 ;; Interrupt Vector |
5 ;; Interrupt Vector |
6 .org 0x00 |
6 .org 0x00 |
7 rjmp init |
7 rjmp init |
8 |
8 |
9 .org OC1Aaddr |
9 .org OC1Aaddr |
10 ; Timer/Counter1 Overflow |
10 ; Timer/Counter1 Compare Output A |
11 rjmp Timer_OC1A |
11 rjmp Timer_OC1A |
|
12 |
|
13 .org OC0Aaddr |
|
14 ; Timer/Counter0 Compare Output A |
|
15 rjmp Timer_OC0A |
12 |
16 |
13 .org SPIaddr |
17 .org SPIaddr |
14 rjmp SPI_Interrupt |
18 rjmp SPI_Interrupt |
15 |
19 |
16 .org ADCCaddr |
20 .org ADCCaddr |
32 |
36 |
33 ;; ADC |
37 ;; ADC |
34 .include "adc.inc" |
38 .include "adc.inc" |
35 |
39 |
36 ;; Timer |
40 ;; Timer |
|
41 .set TIMER0_CB_A = SPI_Update |
|
42 |
37 .include "timer.inc" |
43 .include "timer.inc" |
38 |
44 |
39 ;; Utils |
45 ;; Utils |
40 .include "delay.inc" |
46 .include "delay.inc" |
41 .include "div.inc" |
47 .include "div.inc" |
42 |
48 |
43 Sleep_ADC: |
49 Sleep_ADC: |
44 ; delay |
50 ; delay |
45 rcall ADC_Read8 |
51 ; rcall ADC_Read8 |
|
52 rcall DIP_Read8 |
46 |
53 |
47 ; Sleep for 64 * var timer cycles |
54 ; Sleep for 64 * var timer cycles |
48 ldi r17, 64 |
55 ldi r17, 64 |
49 mul r16, r17 |
56 mul r16, r17 |
50 mov XL, r0 |
57 mov XL, r0 |
52 |
59 |
53 rjmp Timer_Sleep |
60 rjmp Timer_Sleep |
54 |
61 |
55 ;; Show value |
62 ;; Show value |
56 Main_ShowValue: |
63 Main_ShowValue: |
|
64 ; DEBUG |
|
65 sbi PIND, PORTD7 |
|
66 |
57 ; load value to r16 |
67 ; load value to r16 |
58 rcall DIP_Read8 |
68 ; rcall DIP_Read8 |
59 ; rcall ADC_Read8 |
69 ; rcall ADC_Read8 |
|
70 rcall Timer0_Read8 |
60 |
71 |
61 ; display from r16 |
72 ; display from r16 |
62 rcall LED7_ShowHex |
73 rcall LED7_ShowHex |
63 |
74 |
64 ; *g* |
75 ; wait |
65 ldi XL, 0 |
76 rcall Sleep_ADC |
66 ldi XH, 16 |
77 |
67 rcall Timer_Sleep |
78 ; ldi XL, 0 |
|
79 ; ldi XH, 16 |
|
80 ; rcall Timer_Sleep |
|
81 |
|
82 ; rcall ADC_Read8 |
|
83 ; mov r20, r16 |
|
84 ; rcall VarDelay |
68 |
85 |
69 ; continue |
86 ; continue |
70 rjmp Main_ShowValue |
87 rjmp Main_ShowValue |
71 |
88 |
72 ;; Count down from F |
89 ;; Count down from F |
173 |
190 |
174 rjmp _spin_next |
191 rjmp _spin_next |
175 |
192 |
176 Main: |
193 Main: |
177 init: |
194 init: |
178 ; DEBUG |
|
179 sbi DDRD, PORTD7 |
|
180 sbi PORTD, PORTD7 |
|
181 |
|
182 ; Stack |
195 ; Stack |
183 ldi r16, high(RAMEND) |
196 ldi r16, high(RAMEND) |
184 ldi r17, low(RAMEND) |
197 ldi r17, low(RAMEND) |
185 out SPH, r16 |
198 out SPH, r16 |
186 out SPL, r17 |
199 out SPL, r17 |
198 rcall SPI_Init |
211 rcall SPI_Init |
199 |
212 |
200 ; LCD (requires interrupts, blocks) |
213 ; LCD (requires interrupts, blocks) |
201 rcall LED7_Init |
214 rcall LED7_Init |
202 |
215 |
|
216 ; DEBUG |
|
217 sbi DDRD, PORTD7 |
|
218 cbi PORTD, PORTD7 |
|
219 |
203 ; Run |
220 ; Run |
204 rcall Main_ShowValue |
221 ; rcall Main_ShowValue |
205 ; rcall Main_Spin |
222 rcall Main_Spin |
206 ; rcall Main_Countup |
223 ; rcall Main_Countup |
207 ; rcall Main_Countdown |
224 ; rcall Main_Countdown |
208 ; rcall Main_Blink |
225 ; rcall Main_Blink |
209 |
226 |
210 end: |
227 end: |