equal
deleted
inserted
replaced
173 com r16 |
173 com r16 |
174 |
174 |
175 ; Display |
175 ; Display |
176 rjmp SPI_Send |
176 rjmp SPI_Send |
177 |
177 |
178 ;; Delay for approx. 1s |
178 |
|
179 |
|
180 ;; Delay for approx. one second |
179 Delay_1s: |
181 Delay_1s: |
180 ; 20 * 255 * 255 = 1.3M cycles |
182 ; 40 * 64k = 2.6M loops |
181 ldi r20, 40 |
183 ldi r20, 40 |
|
184 |
|
185 ;; Delay for r20 * 64k cycles |
|
186 VarDelay: |
182 ldi r21, 255 |
187 ldi r21, 255 |
|
188 |
|
189 ;; Delay for r20 * r21 * 255 cycles |
|
190 ShortDelay: |
183 ldi r22, 255 |
191 ldi r22, 255 |
184 |
192 |
185 delay: |
193 delay: |
186 dec r22 |
194 dec r22 |
187 brne delay |
195 brne delay |
189 brne delay |
197 brne delay |
190 dec r20 |
198 dec r20 |
191 brne delay |
199 brne delay |
192 |
200 |
193 ret |
201 ret |
|
202 |
194 |
203 |
195 ;; Count down from 9 |
204 ;; Count down from 9 |
196 ; Returns once we've hit zero |
205 ; Returns once we've hit zero |
197 Main_Countdown: |
206 Main_Countdown: |
198 ; init from 9 |
207 ; init from 9 |
244 _spin_next: |
253 _spin_next: |
245 ; display |
254 ; display |
246 mov r16, r24 |
255 mov r16, r24 |
247 rcall LCD_ShowRaw |
256 rcall LCD_ShowRaw |
248 |
257 |
249 ; wait |
258 ; short delay |
250 rcall Delay_1s |
259 ldi r20, 6 |
|
260 ldi r21, 255 |
|
261 rcall ShortDelay |
251 |
262 |
252 ; next segment |
263 ; next segment |
253 lsl r24 |
264 lsl r24 |
254 |
265 |
255 ; go back to A if we hit G |
266 ; go back to A if we hit G |