Go to most recent revision | Blame | Last modification | View Log | RSS feed
1 .file "timer0.c"
2 .arch atmega644
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .global ServoRollValue
11 .global ServoRollValue
12 .section .bss
15 ServoRollValue:
16 0000 0000 .skip 2,0
17 .global ServoNickValue
18 .global ServoNickValue
21 ServoNickValue:
22 0002 0000 .skip 2,0
23 .global BeepMuster
24 .data
27 BeepMuster:
28 0000 FFFF .word -1
29 .global ServoActive
30 .global ServoActive
31 .section .bss
34 ServoActive:
35 0004 00 .skip 1,0
36 .global SendSPI
37 .global SendSPI
40 SendSPI:
41 0005 00 .skip 1,0
42 .global beeptime
43 .global beeptime
46 beeptime:
47 0006 0000 .skip 2,0
48 .global cntKompass
49 .global cntKompass
52 cntKompass:
53 0008 0000 .skip 2,0
54 .global UpdateMotor
55 .global UpdateMotor
58 UpdateMotor:
59 000a 00 .skip 1,0
60 .global CountMilliseconds
61 .global CountMilliseconds
64 CountMilliseconds:
65 000b 0000 .skip 2,0
66 .text
67 .global SetDelay
69 SetDelay:
70 /* prologue: frame size=0 */
71 /* prologue end (size=0) */
72 0000 2091 0000 lds r18,CountMilliseconds
73 0004 3091 0000 lds r19,(CountMilliseconds)+1
74 0008 280F add r18,r24
75 000a 391F adc r19,r25
76 000c C901 movw r24,r18
77 000e 0196 adiw r24,1
78 /* epilogue: frame size=0 */
79 0010 0895 ret
80 /* epilogue end (size=1) */
81 /* function SetDelay size 9 (8) */
83 .global Timer_Init
85 Timer_Init:
86 /* prologue: frame size=0 */
87 /* prologue end (size=0) */
88 0012 8AE0 ldi r24,lo8(10)
89 0014 90E0 ldi r25,hi8(10)
90 0016 0E94 0000 call SetDelay
91 001a 9093 0000 sts (tim_main)+1,r25
92 001e 8093 0000 sts tim_main,r24
93 0022 82E0 ldi r24,lo8(2)
94 0024 85BD out 69-0x20,r24
95 0026 83EA ldi r24,lo8(-93)
96 0028 84BD out 68-0x20,r24
97 002a 17BC out 71-0x20,__zero_reg__
98 002c 88E7 ldi r24,lo8(120)
99 002e 88BD out 72-0x20,r24
100 0030 86E0 ldi r24,lo8(6)
101 0032 86BD out 70-0x20,r24
102 0034 8091 6E00 lds r24,110
103 0038 8160 ori r24,lo8(1)
104 003a 8093 6E00 sts 110,r24
105 /* epilogue: frame size=0 */
106 003e 0895 ret
107 /* epilogue end (size=1) */
108 /* function Timer_Init size 23 (22) */
110 .global CheckDelay
112 CheckDelay:
113 /* prologue: frame size=0 */
114 /* prologue end (size=0) */
115 0040 2091 0000 lds r18,CountMilliseconds
116 0044 3091 0000 lds r19,(CountMilliseconds)+1
117 0048 821B sub r24,r18
118 004a 930B sbc r25,r19
119 004c 892F mov r24,r25
120 004e 9927 clr r25
121 0050 8695 lsr r24
122 0052 8074 andi r24,lo8(64)
123 0054 9070 andi r25,hi8(64)
124 /* epilogue: frame size=0 */
125 0056 0895 ret
126 /* epilogue end (size=1) */
127 /* function CheckDelay size 12 (11) */
129 .global Delay_ms
131 Delay_ms:
132 /* prologue: frame size=0 */
133 0058 CF93 push r28
134 005a DF93 push r29
135 /* prologue end (size=2) */
136 005c 0E94 0000 call SetDelay
137 0060 EC01 movw r28,r24
138 .L5:
139 0062 CE01 movw r24,r28
140 0064 0E94 0000 call CheckDelay
141 0068 8823 tst r24
142 006a 01F0 breq .L5
143 /* epilogue: frame size=0 */
144 006c DF91 pop r29
145 006e CF91 pop r28
146 0070 0895 ret
147 /* epilogue end (size=3) */
148 /* function Delay_ms size 13 (8) */
150 .global Delay_ms_Mess
152 Delay_ms_Mess:
153 /* prologue: frame size=0 */
154 0072 1F93 push r17
155 0074 CF93 push r28
156 0076 DF93 push r29
157 /* prologue end (size=3) */
158 0078 0E94 0000 call SetDelay
159 007c EC01 movw r28,r24
160 007e 1FEC ldi r17,lo8(-49)
161 0080 00C0 rjmp .L17
162 .L13:
163 0082 8091 0000 lds r24,AdReady
164 0086 8823 tst r24
165 0088 01F0 breq .L17
166 008a 9093 0000 sts AdReady,r25
167 008e 1093 7A00 sts 122,r17
168 .L17:
169 0092 CE01 movw r24,r28
170 0094 0E94 0000 call CheckDelay
171 0098 982F mov r25,r24
172 009a 8823 tst r24
173 009c 01F0 breq .L13
174 /* epilogue: frame size=0 */
175 009e DF91 pop r29
176 00a0 CF91 pop r28
177 00a2 1F91 pop r17
178 00a4 0895 ret
179 /* epilogue end (size=4) */
180 /* function Delay_ms_Mess size 26 (19) */
182 .data
185 cnt_1ms.4:
186 0002 01 .byte 1
187 .lcomm cnt.5,1
188 .text
189 .global __vector_18
191 __vector_18:
192 /* prologue: frame size=0 */
193 00a6 1F92 push __zero_reg__
194 00a8 0F92 push __tmp_reg__
195 00aa 0FB6 in __tmp_reg__,__SREG__
196 00ac 0F92 push __tmp_reg__
197 00ae 1124 clr __zero_reg__
198 00b0 2F93 push r18
199 00b2 3F93 push r19
200 00b4 5F93 push r21
201 00b6 6F93 push r22
202 00b8 7F93 push r23
203 00ba 8F93 push r24
204 00bc 9F93 push r25
205 00be AF93 push r26
206 00c0 BF93 push r27
207 00c2 EF93 push r30
208 00c4 FF93 push r31
209 /* prologue end (size=16) */
210 00c6 8091 0000 lds r24,SendSPI
211 00ca 8823 tst r24
212 00cc 01F0 breq .L19
213 00ce 8091 0000 lds r24,SendSPI
214 00d2 8150 subi r24,lo8(-(-1))
215 00d4 8093 0000 sts SendSPI,r24
216 .L19:
217 00d8 8091 0000 lds r24,cnt.5
218 00dc 8150 subi r24,lo8(-(-1))
219 00de 8F3F cpi r24,lo8(-1)
220 00e0 01F0 breq .L36
221 00e2 8093 0000 sts cnt.5,r24
222 .L20:
223 00e6 8091 0000 lds r24,beeptime
224 00ea 9091 0000 lds r25,(beeptime)+1
225 00ee 892B or r24,r25
226 00f0 01F0 breq .L22
227 00f2 8091 0000 lds r24,beeptime
228 00f6 9091 0000 lds r25,(beeptime)+1
229 00fa 0197 sbiw r24,1
230 00fc 9093 0000 sts (beeptime)+1,r25
231 0100 8093 0000 sts beeptime,r24
232 0104 8091 0000 lds r24,beeptime
233 0108 9091 0000 lds r25,(beeptime)+1
234 010c 2091 0000 lds r18,BeepMuster
235 0110 3091 0000 lds r19,(BeepMuster)+1
236 0114 8223 and r24,r18
237 0116 9323 and r25,r19
238 0118 892B or r24,r25
239 011a 01F4 brne .L37
240 .L26:
241 011c 4798 cbi 40-0x20,7
242 .L27:
243 011e 8091 0000 lds r24,EE_Parameter+8
244 0122 83FF sbrs r24,3
245 0124 00C0 rjmp .L18
246 0126 86B1 in r24,38-0x20
247 0128 9927 clr r25
248 012a FC01 movw r30,r24
249 012c E071 andi r30,lo8(16)
250 012e F070 andi r31,hi8(16)
251 0130 84FF sbrs r24,4
252 0132 00C0 rjmp .L29
253 0134 8091 0000 lds r24,cntKompass
254 0138 9091 0000 lds r25,(cntKompass)+1
255 013c 0196 adiw r24,1
256 013e 9093 0000 sts (cntKompass)+1,r25
257 0142 8093 0000 sts cntKompass,r24
258 0146 00C0 rjmp .L18
259 .L22:
260 0148 8FEF ldi r24,lo8(-1)
261 014a 9FEF ldi r25,hi8(-1)
262 014c 9093 0000 sts (BeepMuster)+1,r25
263 0150 8093 0000 sts BeepMuster,r24
264 0154 00C0 rjmp .L26
265 .L37:
266 0156 479A sbi 40-0x20,7
267 0158 00C0 rjmp .L27
268 .L36:
269 015a 89E0 ldi r24,lo8(9)
270 015c 8093 0000 sts cnt.5,r24
271 0160 8091 0000 lds r24,cnt_1ms.4
272 0164 8F5F subi r24,lo8(-(1))
273 0166 8170 andi r24,lo8(1)
274 0168 8093 0000 sts cnt_1ms.4,r24
275 016c 8823 tst r24
276 016e 01F4 brne .L21
277 0170 81E0 ldi r24,lo8(1)
278 0172 8093 0000 sts UpdateMotor,r24
279 .L21:
280 0176 8091 0000 lds r24,CountMilliseconds
281 017a 9091 0000 lds r25,(CountMilliseconds)+1
282 017e 0196 adiw r24,1
283 0180 9093 0000 sts (CountMilliseconds)+1,r25
284 0184 8093 0000 sts CountMilliseconds,r24
285 0188 00C0 rjmp .L20
286 .L29:
287 018a 8091 0000 lds r24,cntKompass
288 018e 9091 0000 lds r25,(cntKompass)+1
289 0192 892B or r24,r25
290 0194 01F0 breq .L31
291 0196 8091 0000 lds r24,cntKompass
292 019a 9091 0000 lds r25,(cntKompass)+1
293 019e 8A56 subi r24,lo8(362)
294 01a0 9140 sbci r25,hi8(362)
295 01a2 00F4 brsh .L31
296 01a4 8091 0000 lds r24,cntKompass
297 01a8 9091 0000 lds r25,(cntKompass)+1
298 01ac 69E2 ldi r22,lo8(41)
299 01ae 70E0 ldi r23,hi8(41)
300 01b0 0E94 0000 call __udivmodhi4
301 01b4 8091 0000 lds r24,cntKompass
302 01b8 9091 0000 lds r25,(cntKompass)+1
303 01bc 860F add r24,r22
304 01be 971F adc r25,r23
305 01c0 9093 0000 sts (cntKompass)+1,r25
306 01c4 8093 0000 sts cntKompass,r24
307 01c8 8091 0000 lds r24,cntKompass
308 01cc 9091 0000 lds r25,(cntKompass)+1
309 01d0 0B97 sbiw r24,11
310 01d2 00F0 brlo .L32
311 01d4 8091 0000 lds r24,cntKompass
312 01d8 9091 0000 lds r25,(cntKompass)+1
313 01dc 0A97 sbiw r24,10
314 01de 9093 0000 sts (KompassValue)+1,r25
315 01e2 8093 0000 sts KompassValue,r24
316 .L31:
317 01e6 8091 0000 lds r24,KompassValue
318 01ea 9091 0000 lds r25,(KompassValue)+1
319 01ee 2091 0000 lds r18,KompassStartwert
320 01f2 3091 0000 lds r19,(KompassStartwert)+1
321 01f6 821B sub r24,r18
322 01f8 930B sbc r25,r19
323 01fa 845E subi r24,lo8(-(540))
324 01fc 9D4F sbci r25,hi8(-(540))
325 01fe 68E6 ldi r22,lo8(360)
326 0200 71E0 ldi r23,hi8(360)
327 0202 0E94 0000 call __divmodhi4
328 0206 845B subi r24,lo8(-(-180))
329 0208 9040 sbci r25,hi8(-(-180))
330 020a 9093 0000 sts (KompassRichtung)+1,r25
331 020e 8093 0000 sts KompassRichtung,r24
332 0212 1092 0000 sts (cntKompass)+1,__zero_reg__
333 0216 1092 0000 sts cntKompass,__zero_reg__
334 021a 00C0 rjmp .L18
335 .L32:
336 021c F093 0000 sts (KompassValue)+1,r31
337 0220 E093 0000 sts KompassValue,r30
338 0224 00C0 rjmp .L31
339 .L18:
340 /* epilogue: frame size=0 */
341 0226 FF91 pop r31
342 0228 EF91 pop r30
343 022a BF91 pop r27
344 022c AF91 pop r26
345 022e 9F91 pop r25
346 0230 8F91 pop r24
347 0232 7F91 pop r23
348 0234 6F91 pop r22
349 0236 5F91 pop r21
350 0238 3F91 pop r19
351 023a 2F91 pop r18
352 023c 0F90 pop __tmp_reg__
353 023e 0FBE out __SREG__,__tmp_reg__
354 0240 0F90 pop __tmp_reg__
355 0242 1F90 pop __zero_reg__
356 0244 1895 reti
357 /* epilogue end (size=16) */
358 /* function __vector_18 size 210 (178) */
360 .global TIMER2_Init
362 TIMER2_Init:
363 /* prologue: frame size=0 */
364 /* prologue end (size=0) */
365 0246 9FB7 in r25,95-0x20
366 /* #APP */
367 0248 F894 cli
368 /* #NOAPP */
369 024a 5F98 cbi 43-0x20,7
370 024c 3E9A sbi 39-0x20,6
371 024e 469A sbi 40-0x20,6
372 0250 8091 B000 lds r24,176
373 0254 8F70 andi r24,lo8(15)
374 0256 8093 B000 sts 176,r24
375 025a 8091 B000 lds r24,176
376 025e 8360 ori r24,lo8(3)
377 0260 8093 B000 sts 176,r24
378 0264 8091 B100 lds r24,177
379 0268 8B73 andi r24,lo8(59)
380 026a 8093 B100 sts 177,r24
381 026e 8091 B100 lds r24,177
382 0272 8B60 ori r24,lo8(11)
383 0274 8093 B100 sts 177,r24
384 0278 1092 B200 sts 178,__zero_reg__
385 027c 8FEF ldi r24,lo8(-1)
386 027e 8093 B300 sts 179,r24
387 0282 8091 B000 lds r24,176
388 0286 8068 ori r24,lo8(-128)
389 0288 8093 B000 sts 176,r24
390 028c 8091 7000 lds r24,112
391 0290 8A7F andi r24,lo8(-6)
392 0292 8093 7000 sts 112,r24
393 0296 8091 7000 lds r24,112
394 029a 8260 ori r24,lo8(2)
395 029c 8093 7000 sts 112,r24
396 02a0 9FBF out 95-0x20,r25
397 /* epilogue: frame size=0 */
398 02a2 0895 ret
399 /* epilogue end (size=1) */
400 /* function TIMER2_Init size 48 (47) */
402 .lcomm PulseOutput.0,1
403 .lcomm RemainingPulse.1,2
404 .lcomm ServoFrameTime.2,2
405 .data
408 ServoNickOffset.3:
409 0003 FC01 .word 508
410 .text
411 .global __vector_9
413 __vector_9:
414 /* prologue: frame size=0 */
415 02a4 1F92 push __zero_reg__
416 02a6 0F92 push __tmp_reg__
417 02a8 0FB6 in __tmp_reg__,__SREG__
418 02aa 0F92 push __tmp_reg__
419 02ac 1124 clr __zero_reg__
420 02ae 2F93 push r18
421 02b0 3F93 push r19
422 02b2 4F93 push r20
423 02b4 5F93 push r21
424 02b6 6F93 push r22
425 02b8 7F93 push r23
426 02ba 8F93 push r24
427 02bc 9F93 push r25
428 02be AF93 push r26
429 02c0 BF93 push r27
430 02c2 EF93 push r30
431 02c4 FF93 push r31
432 /* prologue end (size=17) */
433 02c6 8091 0000 lds r24,PulseOutput.0
434 02ca 8823 tst r24
435 02cc 01F4 brne .L63
436 02ce 8091 B000 lds r24,176
437 02d2 86FD sbrc r24,6
438 02d4 00C0 rjmp .L69
439 02d6 8091 B000 lds r24,176
440 02da 8064 ori r24,lo8(64)
441 02dc 8093 B000 sts 176,r24
442 02e0 8091 0000 lds r24,EE_Parameter+47
443 02e4 282F mov r18,r24
444 02e6 3327 clr r19
445 02e8 8DED ldi r24,lo8(1757)
446 02ea 96E0 ldi r25,hi8(1757)
447 02ec 289F mul r18,r24
448 02ee A001 movw r20,r0
449 02f0 299F mul r18,r25
450 02f2 500D add r21,r0
451 02f4 389F mul r19,r24
452 02f6 500D add r21,r0
453 02f8 1124 clr r1
454 02fa CA01 movw r24,r20
455 02fc 2091 0000 lds r18,ServoFrameTime.2
456 0300 3091 0000 lds r19,(ServoFrameTime.2)+1
457 0304 821B sub r24,r18
458 0306 930B sbc r25,r19
459 0308 9093 0000 sts (RemainingPulse.1)+1,r25
460 030c 8093 0000 sts RemainingPulse.1,r24
461 0310 9C01 movw r18,r24
462 .L56:
463 0312 81E0 ldi r24,lo8(1)
464 0314 8093 0000 sts PulseOutput.0,r24
465 0318 51E0 ldi r21,hi8(383)
466 031a 2F37 cpi r18,lo8(383)
467 031c 3507 cpc r19,r21
468 031e 00F4 brsh .L70
469 .L57:
470 0320 2F3F cpi r18,255
471 0322 3105 cpc r19,__zero_reg__
472 0324 01F0 breq .L59
473 0326 00F0 brlo .L59
474 0328 A901 movw r20,r18
475 032a 4F5F subi r20,lo8(-(-255))
476 032c 5040 sbci r21,hi8(-(-255))
477 032e 4F37 cpi r20,127
478 0330 5105 cpc r21,__zero_reg__
479 0332 00F0 brlo .+2
480 0334 00C0 rjmp .L60
481 0336 80E8 ldi r24,lo8(-128)
482 0338 8093 B300 sts 179,r24
483 033c 2058 subi r18,lo8(-(-128))
484 033e 3040 sbci r19,hi8(-(-128))
485 0340 00C0 rjmp .L68
486 .L63:
487 0342 2091 0000 lds r18,RemainingPulse.1
488 0346 3091 0000 lds r19,(RemainingPulse.1)+1
489 034a 51E0 ldi r21,hi8(383)
490 034c 2F37 cpi r18,lo8(383)
491 034e 3507 cpc r19,r21
492 0350 00F0 brlo .L57
493 .L70:
494 0352 8FEF ldi r24,lo8(-1)
495 0354 8093 B300 sts 179,r24
496 0358 2F5F subi r18,lo8(-(-255))
497 035a 3040 sbci r19,hi8(-(-255))
498 .L68:
499 035c 3093 0000 sts (RemainingPulse.1)+1,r19
500 0360 2093 0000 sts RemainingPulse.1,r18
501 0364 00C0 rjmp .L39
502 .L59:
503 0366 8091 0000 lds r24,RemainingPulse.1
504 036a 8093 B300 sts 179,r24
505 036e 1092 0000 sts (RemainingPulse.1)+1,__zero_reg__
506 0372 1092 0000 sts RemainingPulse.1,__zero_reg__
507 0376 1092 0000 sts PulseOutput.0,__zero_reg__
508 037a 00C0 rjmp .L39
509 .L69:
510 037c 8091 B000 lds r24,176
511 0380 8F7B andi r24,lo8(-65)
512 0382 8093 B000 sts 176,r24
513 0386 89EA ldi r24,lo8(937)
514 0388 93E0 ldi r25,hi8(937)
515 038a 9093 0000 sts (RemainingPulse.1)+1,r25
516 038e 8093 0000 sts RemainingPulse.1,r24
517 0392 8091 0000 lds r24,ServoNickOffset.3
518 0396 9091 0000 lds r25,(ServoNickOffset.3)+1
519 039a 9C01 movw r18,r24
520 039c 220F lsl r18
521 039e 331F rol r19
522 03a0 280F add r18,r24
523 03a2 391F adc r19,r25
524 03a4 8091 0000 lds r24,Parameter_ServoNickControl
525 03a8 9927 clr r25
526 03aa 880F lsl r24
527 03ac 991F rol r25
528 03ae 880F lsl r24
529 03b0 991F rol r25
530 03b2 280F add r18,r24
531 03b4 391F adc r19,r25
532 03b6 37FD sbrc r19,7
533 03b8 00C0 rjmp .L71
534 .L42:
535 03ba C901 movw r24,r18
536 03bc 9595 asr r25
537 03be 8795 ror r24
538 03c0 9595 asr r25
539 03c2 8795 ror r24
540 03c4 9093 0000 sts (ServoNickOffset.3)+1,r25
541 03c8 8093 0000 sts ServoNickOffset.3,r24
542 03cc 9093 0000 sts (ServoNickValue)+1,r25
543 03d0 8093 0000 sts ServoNickValue,r24
544 03d4 8091 0000 lds r24,EE_Parameter+87
545 03d8 80FF sbrs r24,0
546 03da 00C0 rjmp .L43
547 03dc 8091 0000 lds r24,EE_Parameter+40
548 03e0 682F mov r22,r24
549 03e2 7727 clr r23
550 03e4 8827 clr r24
551 03e6 9927 clr r25
552 03e8 2091 0000 lds r18,IntegralNick
553 03ec 3091 0000 lds r19,(IntegralNick)+1
554 03f0 4091 0000 lds r20,(IntegralNick)+2
555 03f4 5091 0000 lds r21,(IntegralNick)+3
556 03f8 57FD sbrc r21,7
557 03fa 00C0 rjmp .L72
558 .L44:
559 03fc A7E0 ldi r26,7
560 03fe 5595 1: asr r21
561 0400 4795 ror r20
562 0402 3795 ror r19
563 0404 2795 ror r18
564 0406 AA95 dec r26
565 0408 01F4 brne 1b
566 040a 0E94 0000 call __mulsi3
567 040e 9B01 movw r18,r22
568 0410 AC01 movw r20,r24
569 0412 97FD sbrc r25,7
570 0414 00C0 rjmp .L73
571 .L45:
572 0416 F6E0 ldi r31,6
573 0418 5595 1: asr r21
574 041a 4795 ror r20
575 041c 3795 ror r19
576 041e 2795 ror r18
577 0420 FA95 dec r31
578 0422 01F4 brne 1b
579 0424 8091 0000 lds r24,ServoNickValue
580 0428 9091 0000 lds r25,(ServoNickValue)+1
581 042c 820F add r24,r18
582 042e 931F adc r25,r19
583 .L65:
584 0430 9093 0000 sts (ServoNickValue)+1,r25
585 0434 8093 0000 sts ServoNickValue,r24
586 0438 8091 0000 lds r24,EE_Parameter+41
587 043c 282F mov r18,r24
588 043e 3327 clr r19
589 0440 220F lsl r18
590 0442 331F rol r19
591 0444 220F lsl r18
592 0446 331F rol r19
593 0448 8091 0000 lds r24,ServoNickValue
594 044c 9091 0000 lds r25,(ServoNickValue)+1
595 0450 8217 cp r24,r18
596 0452 9307 cpc r25,r19
597 0454 04F0 brlt .L66
598 0456 8091 0000 lds r24,EE_Parameter+42
599 045a 282F mov r18,r24
600 045c 3327 clr r19
601 045e 220F lsl r18
602 0460 331F rol r19
603 0462 220F lsl r18
604 0464 331F rol r19
605 0466 8091 0000 lds r24,ServoNickValue
606 046a 9091 0000 lds r25,(ServoNickValue)+1
607 046e 2817 cp r18,r24
608 0470 3907 cpc r19,r25
609 0472 04F4 brge .L50
610 .L66:
611 0474 3093 0000 sts (ServoNickValue)+1,r19
612 0478 2093 0000 sts ServoNickValue,r18
613 .L50:
614 047c 2091 0000 lds r18,ServoNickValue
615 0480 3091 0000 lds r19,(ServoNickValue)+1
616 0484 8091 0000 lds r24,RemainingPulse.1
617 0488 9091 0000 lds r25,(RemainingPulse.1)+1
618 048c 280F add r18,r24
619 048e 391F adc r19,r25
620 0490 2050 subi r18,lo8(-(-512))
621 0492 3240 sbci r19,hi8(-(-512))
622 0494 8091 0000 lds r24,ServoNickValue
623 0498 9091 0000 lds r25,(ServoNickValue)+1
624 049c 97FD sbrc r25,7
625 049e 00C0 rjmp .L74
626 .L52:
627 04a0 9595 asr r25
628 04a2 8795 ror r24
629 04a4 9595 asr r25
630 04a6 8795 ror r24
631 04a8 9093 0000 sts (ServoNickValue)+1,r25
632 04ac 8093 0000 sts ServoNickValue,r24
633 04b0 45E0 ldi r20,hi8(1501)
634 04b2 2D3D cpi r18,lo8(1501)
635 04b4 3407 cpc r19,r20
636 04b6 00F4 brsh .+2
637 04b8 00C0 rjmp .L53
638 04ba 8CED ldi r24,lo8(1500)
639 04bc 95E0 ldi r25,hi8(1500)
640 .L67:
641 04be 9093 0000 sts (RemainingPulse.1)+1,r25
642 04c2 8093 0000 sts RemainingPulse.1,r24
643 .L54:
644 04c6 2091 0000 lds r18,RemainingPulse.1
645 04ca 3091 0000 lds r19,(RemainingPulse.1)+1
646 04ce 3093 0000 sts (ServoFrameTime.2)+1,r19
647 04d2 2093 0000 sts ServoFrameTime.2,r18
648 04d6 00C0 rjmp .L56
649 .L60:
650 04d8 8FEF ldi r24,lo8(-1)
651 04da 8093 B300 sts 179,r24
652 04de 5093 0000 sts (RemainingPulse.1)+1,r21
653 04e2 4093 0000 sts RemainingPulse.1,r20
654 04e6 00C0 rjmp .L39
655 .L71:
656 04e8 2D5F subi r18,lo8(-(3))
657 04ea 3F4F sbci r19,hi8(-(3))
658 04ec 00C0 rjmp .L42
659 .L43:
660 04ee 8091 0000 lds r24,EE_Parameter+40
661 04f2 682F mov r22,r24
662 04f4 7727 clr r23
663 04f6 8827 clr r24
664 04f8 9927 clr r25
665 04fa 2091 0000 lds r18,IntegralNick
666 04fe 3091 0000 lds r19,(IntegralNick)+1
667 0502 4091 0000 lds r20,(IntegralNick)+2
668 0506 5091 0000 lds r21,(IntegralNick)+3
669 050a 57FD sbrc r21,7
670 050c 00C0 rjmp .L75
671 .L47:
672 050e E7E0 ldi r30,7
673 0510 5595 1: asr r21
674 0512 4795 ror r20
675 0514 3795 ror r19
676 0516 2795 ror r18
677 0518 EA95 dec r30
678 051a 01F4 brne 1b
679 051c 0E94 0000 call __mulsi3
680 0520 9B01 movw r18,r22
681 0522 AC01 movw r20,r24
682 0524 97FD sbrc r25,7
683 0526 00C0 rjmp .L76
684 .L48:
685 0528 76E0 ldi r23,6
686 052a 5595 1: asr r21
687 052c 4795 ror r20
688 052e 3795 ror r19
689 0530 2795 ror r18
690 0532 7A95 dec r23
691 0534 01F4 brne 1b
692 0536 8091 0000 lds r24,ServoNickValue
693 053a 9091 0000 lds r25,(ServoNickValue)+1
694 053e 821B sub r24,r18
695 0540 930B sbc r25,r19
696 0542 00C0 rjmp .L65
697 .L53:
698 0544 51E0 ldi r21,hi8(375)
699 0546 2737 cpi r18,lo8(375)
700 0548 3507 cpc r19,r21
701 054a 00F4 brsh .L64
702 054c 87E7 ldi r24,lo8(375)
703 054e 91E0 ldi r25,hi8(375)
704 0550 00C0 rjmp .L67
705 .L64:
706 0552 3093 0000 sts (RemainingPulse.1)+1,r19
707 0556 2093 0000 sts RemainingPulse.1,r18
708 055a 00C0 rjmp .L54
709 .L74:
710 055c 0396 adiw r24,3
711 055e 00C0 rjmp .L52
712 .L72:
713 0560 2158 subi r18,lo8(-(127))
714 0562 3F4F sbci r19,hi8(-(127))
715 0564 4F4F sbci r20,hlo8(-(127))
716 0566 5F4F sbci r21,hhi8(-(127))
717 0568 00C0 rjmp .L44
718 .L76:
719 056a 215C subi r18,lo8(-(63))
720 056c 3F4F sbci r19,hi8(-(63))
721 056e 4F4F sbci r20,hlo8(-(63))
722 0570 5F4F sbci r21,hhi8(-(63))
723 0572 00C0 rjmp .L48
724 .L75:
725 0574 2158 subi r18,lo8(-(127))
726 0576 3F4F sbci r19,hi8(-(127))
727 0578 4F4F sbci r20,hlo8(-(127))
728 057a 5F4F sbci r21,hhi8(-(127))
729 057c 00C0 rjmp .L47
730 .L73:
731 057e 215C subi r18,lo8(-(63))
732 0580 3F4F sbci r19,hi8(-(63))
733 0582 4F4F sbci r20,hlo8(-(63))
734 0584 5F4F sbci r21,hhi8(-(63))
735 0586 00C0 rjmp .L45
736 .L39:
737 /* epilogue: frame size=0 */
738 0588 FF91 pop r31
739 058a EF91 pop r30
740 058c BF91 pop r27
741 058e AF91 pop r26
742 0590 9F91 pop r25
743 0592 8F91 pop r24
744 0594 7F91 pop r23
745 0596 6F91 pop r22
746 0598 5F91 pop r21
747 059a 4F91 pop r20
748 059c 3F91 pop r19
749 059e 2F91 pop r18
750 05a0 0F90 pop __tmp_reg__
751 05a2 0FBE out __SREG__,__tmp_reg__
752 05a4 0F90 pop __tmp_reg__
753 05a6 1F90 pop __zero_reg__
754 05a8 1895 reti
755 /* epilogue end (size=17) */
756 /* function __vector_9 size 387 (353) */
758 .comm Mixer,77,1
759 .lcomm tim_main,2
760 /* File "timer0.c": code 728 = 0x02d8 ( 646), prologues 38, epilogues 44 */
DEFINED SYMBOLS
*ABS*:00000000 timer0.c
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:3 *ABS*:0000003f __SREG__
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:4 *ABS*:0000003e __SP_H__
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:5 *ABS*:0000003d __SP_L__
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:15 .bss:00000000 ServoRollValue
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:21 .bss:00000002 ServoNickValue
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:27 .data:00000000 BeepMuster
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:34 .bss:00000004 ServoActive
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:40 .bss:00000005 SendSPI
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:46 .bss:00000006 beeptime
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:52 .bss:00000008 cntKompass
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:58 .bss:0000000a UpdateMotor
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:64 .bss:0000000b CountMilliseconds
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:69 .text:00000000 SetDelay
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:85 .text:00000012 Timer_Init
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:404 .bss:00000013 tim_main
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:112 .text:00000040 CheckDelay
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:131 .text:00000058 Delay_ms
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:152 .text:00000072 Delay_ms_Mess
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:185 .data:00000002 cnt_1ms.4
.bss:0000000d cnt.5
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:191 .text:000000a6 __vector_18
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:362 .text:00000246 TIMER2_Init
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:187 .bss:0000000e PulseOutput.0
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:402 .bss:0000000f RemainingPulse.1
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:403 .bss:00000011 ServoFrameTime.2
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:408 .data:00000003 ServoNickOffset.3
C:\Users\Bernd\AppData\Local\Temp/ccrsFYQE.s:413 .text:000002a4 __vector_9
*COM*:0000004d Mixer
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
AdReady
EE_Parameter
__udivmodhi4
KompassValue
KompassStartwert
__divmodhi4
KompassRichtung
Parameter_ServoNickControl
IntegralNick
__mulsi3