Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
1 .file "timer0.c"
2 .arch atmega644p
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 .data
69 CameraShutterCycleOnCount:
70 0002 1400 .word 20
71 .lcomm CameraShutterCycleCounter,2
72 .lcomm CameraShutterCycle,2
75 cnt_1ms.6:
76 0004 01 .byte 1
77 .lcomm cnt.7,1
78 .lcomm compass_active.8,1
79 .text
80 .global __vector_18
82 __vector_18:
83 /* prologue: frame size=0 */
84 0000 1F92 push __zero_reg__
85 0002 0F92 push __tmp_reg__
86 0004 0FB6 in __tmp_reg__,__SREG__
87 0006 0F92 push __tmp_reg__
88 0008 1124 clr __zero_reg__
89 000a 2F93 push r18
90 000c 3F93 push r19
91 000e 5F93 push r21
92 0010 6F93 push r22
93 0012 7F93 push r23
94 0014 8F93 push r24
95 0016 9F93 push r25
96 0018 AF93 push r26
97 001a BF93 push r27
98 001c EF93 push r30
99 001e FF93 push r31
100 /* prologue end (size=16) */
101 0020 20E0 ldi r18,lo8(0)
102 0022 8091 0000 lds r24,SendSPI
103 0026 8823 tst r24
104 0028 29F0 breq .L2
105 002a 8091 0000 lds r24,SendSPI
106 002e 8150 subi r24,lo8(-(-1))
107 0030 8093 0000 sts SendSPI,r24
108 .L2:
109 0034 8091 0000 lds r24,SpektrumTimer
110 0038 8823 tst r24
111 003a 19F0 breq .L3
112 003c 8150 subi r24,lo8(-(-1))
113 003e 8093 0000 sts SpektrumTimer,r24
114 .L3:
115 0042 8091 0000 lds r24,cnt.7
116 0046 8150 subi r24,lo8(-(-1))
117 0048 8093 0000 sts cnt.7,r24
118 004c 8F3F cpi r24,lo8(-1)
119 004e 09F0 breq .+2
120 0050 5BC0 rjmp .L4
121 0052 89E0 ldi r24,lo8(9)
122 0054 8093 0000 sts cnt.7,r24
123 0058 8091 0000 lds r24,CountMilliseconds
124 005c 9091 0000 lds r25,(CountMilliseconds)+1
125 0060 0196 adiw r24,1
126 0062 9093 0000 sts (CountMilliseconds)+1,r25
127 0066 8093 0000 sts CountMilliseconds,r24
128 006a 8091 0000 lds r24,cnt_1ms.6
129 006e 8F5F subi r24,lo8(-(1))
130 0070 8170 andi r24,lo8(1)
131 0072 8093 0000 sts cnt_1ms.6,r24
132 0076 8823 tst r24
133 0078 19F4 brne .L5
134 007a 81E0 ldi r24,lo8(1)
135 007c 8093 0000 sts UpdateMotor,r24
136 .L5:
137 0080 3499 sbic 38-0x20,4
138 0082 03C0 rjmp .L6
139 0084 81E0 ldi r24,lo8(1)
140 0086 8093 0000 sts compass_active.8,r24
141 .L6:
142 008a 8091 0000 lds r24,beeptime
143 008e 9091 0000 lds r25,(beeptime)+1
144 0092 892B or r24,r25
145 0094 21F1 breq .L7
146 0096 8091 0000 lds r24,beeptime
147 009a 9091 0000 lds r25,(beeptime)+1
148 009e 0B97 sbiw r24,11
149 00a0 50F0 brlo .L8
150 00a2 8091 0000 lds r24,beeptime
151 00a6 9091 0000 lds r25,(beeptime)+1
152 00aa 0A97 sbiw r24,10
153 00ac 9093 0000 sts (beeptime)+1,r25
154 00b0 8093 0000 sts beeptime,r24
155 00b4 04C0 rjmp .L9
156 .L8:
157 00b6 1092 0000 sts (beeptime)+1,__zero_reg__
158 00ba 1092 0000 sts beeptime,__zero_reg__
159 .L9:
160 00be 8091 0000 lds r24,beeptime
161 00c2 9091 0000 lds r25,(beeptime)+1
162 00c6 2091 0000 lds r18,BeepMuster
163 00ca 3091 0000 lds r19,(BeepMuster)+1
164 00ce 8223 and r24,r18
165 00d0 9323 and r25,r19
166 00d2 892B or r24,r25
167 00d4 11F0 breq .L10
168 00d6 21E0 ldi r18,lo8(1)
169 00d8 08C0 rjmp .L12
170 .L10:
171 00da 20E0 ldi r18,lo8(0)
172 00dc 06C0 rjmp .L12
173 .L7:
174 00de 8FEF ldi r24,lo8(-1)
175 00e0 9FEF ldi r25,hi8(-1)
176 00e2 9093 0000 sts (BeepMuster)+1,r25
177 00e6 8093 0000 sts BeepMuster,r24
178 .L12:
179 00ea 8091 0000 lds r24,PlatinenVersion
180 00ee 2223 tst r18
181 00f0 31F0 breq .L13
182 00f2 8A30 cpi r24,lo8(10)
183 00f4 11F4 brne .L14
184 00f6 5A9A sbi 43-0x20,2
185 00f8 07C0 rjmp .L4
186 .L14:
187 00fa 479A sbi 40-0x20,7
188 00fc 05C0 rjmp .L4
189 .L13:
190 00fe 8A30 cpi r24,lo8(10)
191 0100 11F4 brne .L17
192 0102 5A98 cbi 43-0x20,2
193 0104 01C0 rjmp .L4
194 .L17:
195 0106 4798 cbi 40-0x20,7
196 .L4:
197 0108 8091 0000 lds r24,compass_active.8
198 010c 8823 tst r24
199 010e 09F4 brne .+2
200 0110 72C0 rjmp .L1
201 0112 2091 0000 lds r18,NaviDataOkay
202 0116 2223 tst r18
203 0118 09F0 breq .+2
204 011a 6DC0 rjmp .L1
205 011c 8091 0000 lds r24,EE_Parameter+13
206 0120 83FF sbrs r24,3
207 0122 69C0 rjmp .L1
208 0124 86B1 in r24,38-0x20
209 0126 9927 clr r25
210 0128 FC01 movw r30,r24
211 012a E071 andi r30,lo8(16)
212 012c F070 andi r31,hi8(16)
213 012e 84FF sbrs r24,4
214 0130 14C0 rjmp .L20
215 0132 8091 0000 lds r24,cntKompass
216 0136 9091 0000 lds r25,(cntKompass)+1
217 013a 0196 adiw r24,1
218 013c 9093 0000 sts (cntKompass)+1,r25
219 0140 8093 0000 sts cntKompass,r24
220 0144 8091 0000 lds r24,cntKompass
221 0148 9091 0000 lds r25,(cntKompass)+1
222 014c 895E subi r24,lo8(1001)
223 014e 9340 sbci r25,hi8(1001)
224 0150 08F4 brsh .+2
225 0152 51C0 rjmp .L1
226 0154 2093 0000 sts compass_active.8,r18
227 0158 4EC0 rjmp .L1
228 .L20:
229 015a 8091 0000 lds r24,cntKompass
230 015e 9091 0000 lds r25,(cntKompass)+1
231 0162 892B or r24,r25
232 0164 09F4 brne .+2
233 0166 43C0 rjmp .L23
234 0168 8091 0000 lds r24,cntKompass
235 016c 9091 0000 lds r25,(cntKompass)+1
236 0170 8A56 subi r24,lo8(362)
237 0172 9140 sbci r25,hi8(362)
238 0174 E0F5 brsh .L23
239 0176 8091 0000 lds r24,cntKompass
240 017a 9091 0000 lds r25,(cntKompass)+1
241 017e 69E2 ldi r22,lo8(41)
242 0180 70E0 ldi r23,hi8(41)
243 0182 0E94 0000 call __udivmodhi4
244 0186 8091 0000 lds r24,cntKompass
245 018a 9091 0000 lds r25,(cntKompass)+1
246 018e 860F add r24,r22
247 0190 971F adc r25,r23
248 0192 9093 0000 sts (cntKompass)+1,r25
249 0196 8093 0000 sts cntKompass,r24
250 019a 8091 0000 lds r24,cntKompass
251 019e 9091 0000 lds r25,(cntKompass)+1
252 01a2 0B97 sbiw r24,11
253 01a4 50F0 brlo .L24
254 01a6 8091 0000 lds r24,cntKompass
255 01aa 9091 0000 lds r25,(cntKompass)+1
256 01ae 0A97 sbiw r24,10
257 01b0 9093 0000 sts (KompassValue)+1,r25
258 01b4 8093 0000 sts KompassValue,r24
259 01b8 04C0 rjmp .L25
260 .L24:
261 01ba F093 0000 sts (KompassValue)+1,r31
262 01be E093 0000 sts KompassValue,r30
263 .L25:
264 01c2 8091 0000 lds r24,KompassValue
265 01c6 9091 0000 lds r25,(KompassValue)+1
266 01ca 2091 0000 lds r18,KompassStartwert
267 01ce 3091 0000 lds r19,(KompassStartwert)+1
268 01d2 821B sub r24,r18
269 01d4 930B sbc r25,r19
270 01d6 845E subi r24,lo8(-(540))
271 01d8 9D4F sbci r25,hi8(-(540))
272 01da 68E6 ldi r22,lo8(360)
273 01dc 71E0 ldi r23,hi8(360)
274 01de 0E94 0000 call __divmodhi4
275 01e2 845B subi r24,lo8(-(-180))
276 01e4 9040 sbci r25,hi8(-(-180))
277 01e6 9093 0000 sts (KompassRichtung)+1,r25
278 01ea 8093 0000 sts KompassRichtung,r24
279 .L23:
280 01ee 1092 0000 sts (cntKompass)+1,__zero_reg__
281 01f2 1092 0000 sts cntKompass,__zero_reg__
282 .L1:
283 /* epilogue: frame size=0 */
284 01f6 FF91 pop r31
285 01f8 EF91 pop r30
286 01fa BF91 pop r27
287 01fc AF91 pop r26
288 01fe 9F91 pop r25
289 0200 8F91 pop r24
290 0202 7F91 pop r23
291 0204 6F91 pop r22
292 0206 5F91 pop r21
293 0208 3F91 pop r19
294 020a 2F91 pop r18
295 020c 0F90 pop __tmp_reg__
296 020e 0FBE out __SREG__,__tmp_reg__
297 0210 0F90 pop __tmp_reg__
298 0212 1F90 pop __zero_reg__
299 0214 1895 reti
300 /* epilogue end (size=16) */
301 /* function __vector_18 size 271 (239) */
303 .global SetDelay
305 SetDelay:
306 /* prologue: frame size=0 */
307 /* prologue end (size=0) */
308 0216 2091 0000 lds r18,CountMilliseconds
309 021a 3091 0000 lds r19,(CountMilliseconds)+1
310 021e 280F add r18,r24
311 0220 391F adc r19,r25
312 0222 C901 movw r24,r18
313 0224 0196 adiw r24,1
314 /* epilogue: frame size=0 */
315 0226 0895 ret
316 /* epilogue end (size=1) */
317 /* function SetDelay size 9 (8) */
319 .global CheckDelay
321 CheckDelay:
322 /* prologue: frame size=0 */
323 /* prologue end (size=0) */
324 0228 2091 0000 lds r18,CountMilliseconds
325 022c 3091 0000 lds r19,(CountMilliseconds)+1
326 0230 821B sub r24,r18
327 0232 930B sbc r25,r19
328 0234 892F mov r24,r25
329 0236 9927 clr r25
330 0238 8695 lsr r24
331 023a 8074 andi r24,lo8(64)
332 023c 9070 andi r25,hi8(64)
333 /* epilogue: frame size=0 */
334 023e 0895 ret
335 /* epilogue end (size=1) */
336 /* function CheckDelay size 12 (11) */
338 .global Delay_ms
340 Delay_ms:
341 /* prologue: frame size=0 */
342 0240 CF93 push r28
343 0242 DF93 push r29
344 /* prologue end (size=2) */
345 0244 0E94 0000 call SetDelay
346 0248 EC01 movw r28,r24
347 .L29:
348 024a CE01 movw r24,r28
349 024c 0E94 0000 call CheckDelay
350 0250 8823 tst r24
351 0252 D9F3 breq .L29
352 /* epilogue: frame size=0 */
353 0254 DF91 pop r29
354 0256 CF91 pop r28
355 0258 0895 ret
356 /* epilogue end (size=3) */
357 /* function Delay_ms size 13 (8) */
359 .global Delay_ms_Mess
361 Delay_ms_Mess:
362 /* prologue: frame size=0 */
363 025a CF93 push r28
364 025c DF93 push r29
365 /* prologue end (size=2) */
366 025e 0E94 0000 call SetDelay
367 0262 EC01 movw r28,r24
368 0264 09C0 rjmp .L40
369 .L36:
370 0266 8091 0000 lds r24,AdReady
371 026a 8823 tst r24
372 026c 29F0 breq .L40
373 026e 9093 0000 sts AdReady,r25
374 0272 8FEC ldi r24,lo8(-49)
375 0274 8093 7A00 sts 122,r24
376 .L40:
377 0278 CE01 movw r24,r28
378 027a 0E94 0000 call CheckDelay
379 027e 982F mov r25,r24
380 0280 8823 tst r24
381 0282 89F3 breq .L36
382 /* epilogue: frame size=0 */
383 0284 DF91 pop r29
384 0286 CF91 pop r28
385 0288 0895 ret
386 /* epilogue end (size=3) */
387 /* function Delay_ms_Mess size 24 (19) */
389 .global TIMER2_Init
391 TIMER2_Init:
392 /* prologue: frame size=0 */
393 /* prologue end (size=0) */
394 028a 4FB7 in r20,95-0x20
395 028c 8091 0000 lds r24,Parameter_UserParam8
396 0290 282F mov r18,r24
397 0292 3327 clr r19
398 0294 2F77 andi r18,lo8(127)
399 0296 3070 andi r19,hi8(127)
400 0298 C901 movw r24,r18
401 029a 880F lsl r24
402 029c 991F rol r25
403 029e 880F lsl r24
404 02a0 991F rol r25
405 02a2 820F add r24,r18
406 02a4 931F adc r25,r19
407 02a6 9093 0000 sts (CameraShutterCycle)+1,r25
408 02aa 8093 0000 sts CameraShutterCycle,r24
409 /* #APP */
410 02ae F894 cli
411 /* #NOAPP */
412 02b0 5F98 cbi 43-0x20,7
413 02b2 3E9A sbi 39-0x20,6
414 02b4 469A sbi 40-0x20,6
415 02b6 8091 B000 lds r24,176
416 02ba 8F70 andi r24,lo8(15)
417 02bc 8093 B000 sts 176,r24
418 02c0 8091 B000 lds r24,176
419 02c4 8360 ori r24,lo8(3)
420 02c6 8093 B000 sts 176,r24
421 02ca 8091 B100 lds r24,177
422 02ce 8B73 andi r24,lo8(59)
423 02d0 8093 B100 sts 177,r24
424 02d4 8091 B100 lds r24,177
425 02d8 8B60 ori r24,lo8(11)
426 02da 8093 B100 sts 177,r24
427 02de 1092 B200 sts 178,__zero_reg__
428 02e2 8FEF ldi r24,lo8(-1)
429 02e4 8093 B300 sts 179,r24
430 02e8 8091 B000 lds r24,176
431 02ec 8068 ori r24,lo8(-128)
432 02ee 8093 B000 sts 176,r24
433 02f2 8091 7000 lds r24,112
434 02f6 8A7F andi r24,lo8(-6)
435 02f8 8093 7000 sts 112,r24
436 02fc 8091 7000 lds r24,112
437 0300 8260 ori r24,lo8(2)
438 0302 8093 7000 sts 112,r24
439 0306 4FBF out 95-0x20,r20
440 /* epilogue: frame size=0 */
441 0308 0895 ret
442 /* epilogue end (size=1) */
443 /* function TIMER2_Init size 65 (64) */
445 .global Timer_Init
447 Timer_Init:
448 /* prologue: frame size=0 */
449 /* prologue end (size=0) */
450 030a 8AE0 ldi r24,lo8(10)
451 030c 90E0 ldi r25,hi8(10)
452 030e 0E94 0000 call SetDelay
453 0312 9093 0000 sts (tim_main)+1,r25
454 0316 8093 0000 sts tim_main,r24
455 031a 82E0 ldi r24,lo8(2)
456 031c 85BD out 69-0x20,r24
457 031e 83EA ldi r24,lo8(-93)
458 0320 84BD out 68-0x20,r24
459 0322 17BC out 71-0x20,__zero_reg__
460 0324 84EB ldi r24,lo8(-76)
461 0326 88BD out 72-0x20,r24
462 0328 86E0 ldi r24,lo8(6)
463 032a 86BD out 70-0x20,r24
464 032c 8091 6E00 lds r24,110
465 0330 8160 ori r24,lo8(1)
466 0332 8093 6E00 sts 110,r24
467 /* epilogue: frame size=0 */
468 0336 0895 ret
469 /* epilogue end (size=1) */
470 /* function Timer_Init size 23 (22) */
472 .lcomm PulseOutput.0,1
473 .lcomm RemainingPulse.1,2
474 .lcomm ServoFrameTime.2,2
475 .lcomm ServoIndex.3,1
476 .data
479 ServoNickOffset.4:
480 0005 FC01 .word 508
483 ServoRollOffset.5:
484 0007 FC01 .word 508
485 .text
486 .global __vector_9
488 __vector_9:
489 /* prologue: frame size=0 */
490 0338 1F92 push __zero_reg__
491 033a 0F92 push __tmp_reg__
492 033c 0FB6 in __tmp_reg__,__SREG__
493 033e 0F92 push __tmp_reg__
494 0340 1124 clr __zero_reg__
495 0342 2F93 push r18
496 0344 3F93 push r19
497 0346 4F93 push r20
498 0348 5F93 push r21
499 034a 6F93 push r22
500 034c 7F93 push r23
501 034e 8F93 push r24
502 0350 9F93 push r25
503 0352 AF93 push r26
504 0354 BF93 push r27
505 0356 CF93 push r28
506 0358 DF93 push r29
507 035a EF93 push r30
508 035c FF93 push r31
509 /* prologue end (size=19) */
510 035e 8091 0000 lds r24,PlatinenVersion
511 0362 8431 cpi r24,lo8(20)
512 0364 08F0 brlo .+2
513 0366 17C1 rjmp .L44
514 0368 8091 0000 lds r24,Parameter_UserParam8
515 036c 87FD sbrc r24,7
516 036e 13C1 rjmp .L44
517 0370 8091 0000 lds r24,PulseOutput.0
518 0374 8823 tst r24
519 0376 09F0 breq .+2
520 0378 AEC3 rjmp .L62
521 037a 8091 B000 lds r24,176
522 037e 86FF sbrs r24,6
523 0380 ECC0 rjmp .L46
524 0382 8091 B000 lds r24,176
525 0386 8F7B andi r24,lo8(-65)
526 0388 8093 B000 sts 176,r24
527 038c 89EA ldi r24,lo8(937)
528 038e 93E0 ldi r25,hi8(937)
529 0390 9093 0000 sts (RemainingPulse.1)+1,r25
530 0394 8093 0000 sts RemainingPulse.1,r24
531 0398 8091 0000 lds r24,ServoNickOffset.4
532 039c 9091 0000 lds r25,(ServoNickOffset.4)+1
533 03a0 9C01 movw r18,r24
534 03a2 220F lsl r18
535 03a4 331F rol r19
536 03a6 280F add r18,r24
537 03a8 391F adc r19,r25
538 03aa 8091 0000 lds r24,Parameter_ServoNickControl
539 03ae 9927 clr r25
540 03b0 880F lsl r24
541 03b2 991F rol r25
542 03b4 880F lsl r24
543 03b6 991F rol r25
544 03b8 280F add r18,r24
545 03ba 391F adc r19,r25
546 03bc 37FF sbrs r19,7
547 03be 02C0 rjmp .L47
548 03c0 2D5F subi r18,lo8(-(3))
549 03c2 3F4F sbci r19,hi8(-(3))
550 .L47:
551 03c4 C901 movw r24,r18
552 03c6 9595 asr r25
553 03c8 8795 ror r24
554 03ca 9595 asr r25
555 03cc 8795 ror r24
556 03ce 9093 0000 sts (ServoNickOffset.4)+1,r25
557 03d2 8093 0000 sts ServoNickOffset.4,r24
558 03d6 9093 0000 sts (ServoNickValue)+1,r25
559 03da 8093 0000 sts ServoNickValue,r24
560 03de 8091 0000 lds r24,EE_Parameter+98
561 03e2 6091 0000 lds r22,EE_Parameter+46
562 03e6 2091 0000 lds r18,IntegralNick
563 03ea 3091 0000 lds r19,(IntegralNick)+1
564 03ee 4091 0000 lds r20,(IntegralNick)+2
565 03f2 5091 0000 lds r21,(IntegralNick)+3
566 03f6 80FF sbrs r24,0
567 03f8 2CC0 rjmp .L48
568 03fa 7727 clr r23
569 03fc 8827 clr r24
570 03fe 9927 clr r25
571 0400 EA01 movw r28,r20
572 0402 D901 movw r26,r18
573 0404 57FF sbrs r21,7
574 0406 04C0 rjmp .L49
575 0408 A158 subi r26,lo8(-(127))
576 040a BF4F sbci r27,hi8(-(127))
577 040c CF4F sbci r28,hlo8(-(127))
578 040e DF4F sbci r29,hhi8(-(127))
579 .L49:
580 0410 E7E0 ldi r30,7
581 0412 D595 1: asr r29
582 0414 C795 ror r28
583 0416 B795 ror r27
584 0418 A795 ror r26
585 041a EA95 dec r30
586 041c D1F7 brne 1b
587 041e 9D01 movw r18,r26
588 0420 AE01 movw r20,r28
589 0422 0E94 0000 call __mulsi3
590 0426 9B01 movw r18,r22
591 0428 AC01 movw r20,r24
592 042a 97FF sbrs r25,7
593 042c 04C0 rjmp .L50
594 042e 215C subi r18,lo8(-(63))
595 0430 3F4F sbci r19,hi8(-(63))
596 0432 4F4F sbci r20,hlo8(-(63))
597 0434 5F4F sbci r21,hhi8(-(63))
598 .L50:
599 0436 66E0 ldi r22,6
600 0438 5595 1: asr r21
601 043a 4795 ror r20
602 043c 3795 ror r19
603 043e 2795 ror r18
604 0440 6A95 dec r22
605 0442 D1F7 brne 1b
606 0444 8091 0000 lds r24,ServoNickValue
607 0448 9091 0000 lds r25,(ServoNickValue)+1
608 044c 820F add r24,r18
609 044e 931F adc r25,r19
610 0450 2BC0 rjmp .L121
611 .L48:
612 0452 7727 clr r23
613 0454 8827 clr r24
614 0456 9927 clr r25
615 0458 EA01 movw r28,r20
616 045a D901 movw r26,r18
617 045c 57FF sbrs r21,7
618 045e 04C0 rjmp .L52
619 0460 A158 subi r26,lo8(-(127))
620 0462 BF4F sbci r27,hi8(-(127))
621 0464 CF4F sbci r28,hlo8(-(127))
622 0466 DF4F sbci r29,hhi8(-(127))
623 .L52:
624 0468 27E0 ldi r18,7
625 046a D595 1: asr r29
626 046c C795 ror r28
627 046e B795 ror r27
628 0470 A795 ror r26
629 0472 2A95 dec r18
630 0474 D1F7 brne 1b
631 0476 9D01 movw r18,r26
632 0478 AE01 movw r20,r28
633 047a 0E94 0000 call __mulsi3
634 047e 9B01 movw r18,r22
635 0480 AC01 movw r20,r24
636 0482 97FF sbrs r25,7
637 0484 04C0 rjmp .L53
638 0486 215C subi r18,lo8(-(63))
639 0488 3F4F sbci r19,hi8(-(63))
640 048a 4F4F sbci r20,hlo8(-(63))
641 048c 5F4F sbci r21,hhi8(-(63))
642 .L53:
643 048e F6E0 ldi r31,6
644 0490 5595 1: asr r21
645 0492 4795 ror r20
646 0494 3795 ror r19
647 0496 2795 ror r18
648 0498 FA95 dec r31
649 049a D1F7 brne 1b
650 049c 8091 0000 lds r24,ServoNickValue
651 04a0 9091 0000 lds r25,(ServoNickValue)+1
652 04a4 821B sub r24,r18
653 04a6 930B sbc r25,r19
654 .L121:
655 04a8 9093 0000 sts (ServoNickValue)+1,r25
656 04ac 8093 0000 sts ServoNickValue,r24
657 04b0 8091 0000 lds r24,EE_Parameter+47
658 04b4 282F mov r18,r24
659 04b6 3327 clr r19
660 04b8 220F lsl r18
661 04ba 331F rol r19
662 04bc 220F lsl r18
663 04be 331F rol r19
664 04c0 8091 0000 lds r24,ServoNickValue
665 04c4 9091 0000 lds r25,(ServoNickValue)+1
666 04c8 8217 cp r24,r18
667 04ca 9307 cpc r25,r19
668 04cc 7CF0 brlt .L122
669 04ce 8091 0000 lds r24,EE_Parameter+48
670 04d2 282F mov r18,r24
671 04d4 3327 clr r19
672 04d6 220F lsl r18
673 04d8 331F rol r19
674 04da 220F lsl r18
675 04dc 331F rol r19
676 04de 8091 0000 lds r24,ServoNickValue
677 04e2 9091 0000 lds r25,(ServoNickValue)+1
678 04e6 2817 cp r18,r24
679 04e8 3907 cpc r19,r25
680 04ea 24F4 brge .L55
681 .L122:
682 04ec 3093 0000 sts (ServoNickValue)+1,r19
683 04f0 2093 0000 sts ServoNickValue,r18
684 .L55:
685 04f4 2091 0000 lds r18,RemainingPulse.1
686 04f8 3091 0000 lds r19,(RemainingPulse.1)+1
687 04fc 8091 0000 lds r24,ServoNickValue
688 0500 9091 0000 lds r25,(ServoNickValue)+1
689 0504 280F add r18,r24
690 0506 391F adc r19,r25
691 0508 2050 subi r18,lo8(-(-512))
692 050a 3240 sbci r19,hi8(-(-512))
693 050c 3093 0000 sts (RemainingPulse.1)+1,r19
694 0510 2093 0000 sts RemainingPulse.1,r18
695 0514 8091 0000 lds r24,ServoNickValue
696 0518 9091 0000 lds r25,(ServoNickValue)+1
697 051c 97FD sbrc r25,7
698 051e 0396 adiw r24,3
699 .L57:
700 0520 9595 asr r25
701 0522 8795 ror r24
702 0524 9595 asr r25
703 0526 8795 ror r24
704 0528 9093 0000 sts (ServoNickValue)+1,r25
705 052c 8093 0000 sts ServoNickValue,r24
706 0530 45E0 ldi r20,hi8(1501)
707 0532 2D3D cpi r18,lo8(1501)
708 0534 3407 cpc r19,r20
709 0536 18F0 brlo .L58
710 0538 8CED ldi r24,lo8(1500)
711 053a 95E0 ldi r25,hi8(1500)
712 053c 05C0 rjmp .L123
713 .L58:
714 053e 2757 subi r18,lo8(375)
715 0540 3140 sbci r19,hi8(375)
716 0542 30F4 brsh .L59
717 0544 87E7 ldi r24,lo8(375)
718 0546 91E0 ldi r25,hi8(375)
719 .L123:
720 0548 9093 0000 sts (RemainingPulse.1)+1,r25
721 054c 8093 0000 sts RemainingPulse.1,r24
722 .L59:
723 0550 8091 0000 lds r24,RemainingPulse.1
724 0554 9091 0000 lds r25,(RemainingPulse.1)+1
725 0558 87C2 rjmp .L134
726 .L46:
727 055a 8091 B000 lds r24,176
728 055e 8064 ori r24,lo8(64)
729 0560 8093 B000 sts 176,r24
730 0564 8091 0000 lds r24,EE_Parameter+53
731 0568 282F mov r18,r24
732 056a 3327 clr r19
733 056c 8DED ldi r24,lo8(1757)
734 056e 96E0 ldi r25,hi8(1757)
735 0570 289F mul r18,r24
736 0572 A001 movw r20,r0
737 0574 299F mul r18,r25
738 0576 500D add r21,r0
739 0578 389F mul r19,r24
740 057a 500D add r21,r0
741 057c 1124 clr r1
742 057e CA01 movw r24,r20
743 0580 2091 0000 lds r18,ServoFrameTime.2
744 0584 3091 0000 lds r19,(ServoFrameTime.2)+1
745 0588 821B sub r24,r18
746 058a 930B sbc r25,r19
747 058c 9093 0000 sts (RemainingPulse.1)+1,r25
748 0590 8093 0000 sts RemainingPulse.1,r24
749 0594 9DC2 rjmp .L109
750 .L44:
751 0596 8091 0000 lds r24,PulseOutput.0
752 059a 8823 tst r24
753 059c 09F0 breq .+2
754 059e 9BC2 rjmp .L62
755 05a0 8091 B000 lds r24,176
756 05a4 86FF sbrs r24,6
757 05a6 65C2 rjmp .L64
758 05a8 8091 B000 lds r24,176
759 05ac 8F7B andi r24,lo8(-65)
760 05ae 8093 B000 sts 176,r24
761 05b2 E091 0000 lds r30,ServoIndex.3
762 05b6 EE23 tst r30
763 05b8 F1F4 brne .L65
764 05ba 8091 0000 lds r24,EE_Parameter+53
765 05be 282F mov r18,r24
766 05c0 3327 clr r19
767 05c2 8DED ldi r24,lo8(1757)
768 05c4 96E0 ldi r25,hi8(1757)
769 05c6 289F mul r18,r24
770 05c8 A001 movw r20,r0
771 05ca 299F mul r18,r25
772 05cc 500D add r21,r0
773 05ce 389F mul r19,r24
774 05d0 500D add r21,r0
775 05d2 1124 clr r1
776 05d4 CA01 movw r24,r20
777 05d6 2091 0000 lds r18,ServoFrameTime.2
778 05da 3091 0000 lds r19,(ServoFrameTime.2)+1
779 05de 821B sub r24,r18
780 05e0 930B sbc r25,r19
781 05e2 9093 0000 sts (RemainingPulse.1)+1,r25
782 05e6 8093 0000 sts RemainingPulse.1,r24
783 05ea 1092 0000 sts (ServoFrameTime.2)+1,__zero_reg__
784 05ee 1092 0000 sts ServoFrameTime.2,__zero_reg__
785 05f2 469A sbi 40-0x20,6
786 05f4 6DC2 rjmp .L109
787 .L65:
788 05f6 49EA ldi r20,lo8(937)
789 05f8 53E0 ldi r21,hi8(937)
790 05fa 5093 0000 sts (RemainingPulse.1)+1,r21
791 05fe 4093 0000 sts RemainingPulse.1,r20
792 0602 8E2F mov r24,r30
793 0604 9927 clr r25
794 0606 8330 cpi r24,3
795 0608 9105 cpc r25,__zero_reg__
796 060a 09F4 brne .+2
797 060c A4C1 rjmp .L92
798 060e 8430 cpi r24,4
799 0610 9105 cpc r25,__zero_reg__
800 0612 3CF4 brge .L105
801 0614 8130 cpi r24,1
802 0616 9105 cpc r25,__zero_reg__
803 0618 61F0 breq .L68
804 061a 0297 sbiw r24,2
805 061c 09F4 brne .+2
806 061e D2C0 rjmp .L80
807 0620 ECC1 rjmp .L104
808 .L105:
809 0622 8430 cpi r24,4
810 0624 9105 cpc r25,__zero_reg__
811 0626 09F4 brne .+2
812 0628 DBC1 rjmp .L102
813 062a 0597 sbiw r24,5
814 062c 09F4 brne .+2
815 062e DBC1 rjmp .L103
816 0630 E4C1 rjmp .L104
817 .L68:
818 0632 8091 0000 lds r24,ServoNickOffset.4
819 0636 9091 0000 lds r25,(ServoNickOffset.4)+1
820 063a 9C01 movw r18,r24
821 063c 220F lsl r18
822 063e 331F rol r19
823 0640 280F add r18,r24
824 0642 391F adc r19,r25
825 0644 8091 0000 lds r24,Parameter_ServoNickControl
826 0648 9927 clr r25
827 064a 880F lsl r24
828 064c 991F rol r25
829 064e 880F lsl r24
830 0650 991F rol r25
831 0652 280F add r18,r24
832 0654 391F adc r19,r25
833 0656 37FF sbrs r19,7
834 0658 02C0 rjmp .L69
835 065a 2D5F subi r18,lo8(-(3))
836 065c 3F4F sbci r19,hi8(-(3))
837 .L69:
838 065e C901 movw r24,r18
839 0660 9595 asr r25
840 0662 8795 ror r24
841 0664 9595 asr r25
842 0666 8795 ror r24
843 0668 9093 0000 sts (ServoNickOffset.4)+1,r25
844 066c 8093 0000 sts ServoNickOffset.4,r24
845 0670 9093 0000 sts (ServoNickValue)+1,r25
846 0674 8093 0000 sts ServoNickValue,r24
847 0678 8091 0000 lds r24,EE_Parameter+98
848 067c 6091 0000 lds r22,EE_Parameter+46
849 0680 2091 0000 lds r18,IntegralNick
850 0684 3091 0000 lds r19,(IntegralNick)+1
851 0688 4091 0000 lds r20,(IntegralNick)+2
852 068c 5091 0000 lds r21,(IntegralNick)+3
853 0690 80FF sbrs r24,0
854 0692 2CC0 rjmp .L70
855 0694 7727 clr r23
856 0696 8827 clr r24
857 0698 9927 clr r25
858 069a EA01 movw r28,r20
859 069c D901 movw r26,r18
860 069e 57FF sbrs r21,7
861 06a0 04C0 rjmp .L71
862 06a2 A158 subi r26,lo8(-(127))
863 06a4 BF4F sbci r27,hi8(-(127))
864 06a6 CF4F sbci r28,hlo8(-(127))
865 06a8 DF4F sbci r29,hhi8(-(127))
866 .L71:
867 06aa 27E0 ldi r18,7
868 06ac D595 1: asr r29
869 06ae C795 ror r28
870 06b0 B795 ror r27
871 06b2 A795 ror r26
872 06b4 2A95 dec r18
873 06b6 D1F7 brne 1b
874 06b8 9D01 movw r18,r26
875 06ba AE01 movw r20,r28
876 06bc 0E94 0000 call __mulsi3
877 06c0 9B01 movw r18,r22
878 06c2 AC01 movw r20,r24
879 06c4 97FF sbrs r25,7
880 06c6 04C0 rjmp .L72
881 06c8 215C subi r18,lo8(-(63))
882 06ca 3F4F sbci r19,hi8(-(63))
883 06cc 4F4F sbci r20,hlo8(-(63))
884 06ce 5F4F sbci r21,hhi8(-(63))
885 .L72:
886 06d0 F6E0 ldi r31,6
887 06d2 5595 1: asr r21
888 06d4 4795 ror r20
889 06d6 3795 ror r19
890 06d8 2795 ror r18
891 06da FA95 dec r31
892 06dc D1F7 brne 1b
893 06de 8091 0000 lds r24,ServoNickValue
894 06e2 9091 0000 lds r25,(ServoNickValue)+1
895 06e6 820F add r24,r18
896 06e8 931F adc r25,r19
897 06ea 27C0 rjmp .L124
898 .L70:
899 06ec 7727 clr r23
900 06ee 8827 clr r24
901 06f0 9927 clr r25
902 06f2 57FF sbrs r21,7
903 06f4 04C0 rjmp .L74
904 06f6 2158 subi r18,lo8(-(127))
905 06f8 3F4F sbci r19,hi8(-(127))
906 06fa 4F4F sbci r20,hlo8(-(127))
907 06fc 5F4F sbci r21,hhi8(-(127))
908 .L74:
909 06fe E7E0 ldi r30,7
910 0700 5595 1: asr r21
911 0702 4795 ror r20
912 0704 3795 ror r19
913 0706 2795 ror r18
914 0708 EA95 dec r30
915 070a D1F7 brne 1b
916 070c 0E94 0000 call __mulsi3
917 0710 9B01 movw r18,r22
918 0712 AC01 movw r20,r24
919 0714 97FF sbrs r25,7
920 0716 04C0 rjmp .L75
921 0718 215C subi r18,lo8(-(63))
922 071a 3F4F sbci r19,hi8(-(63))
923 071c 4F4F sbci r20,hlo8(-(63))
924 071e 5F4F sbci r21,hhi8(-(63))
925 .L75:
926 0720 66E0 ldi r22,6
927 0722 5595 1: asr r21
928 0724 4795 ror r20
929 0726 3795 ror r19
930 0728 2795 ror r18
931 072a 6A95 dec r22
932 072c D1F7 brne 1b
933 072e 8091 0000 lds r24,ServoNickValue
934 0732 9091 0000 lds r25,(ServoNickValue)+1
935 0736 821B sub r24,r18
936 0738 930B sbc r25,r19
937 .L124:
938 073a 9093 0000 sts (ServoNickValue)+1,r25
939 073e 8093 0000 sts ServoNickValue,r24
940 0742 8091 0000 lds r24,EE_Parameter+47
941 0746 282F mov r18,r24
942 0748 3327 clr r19
943 074a 220F lsl r18
944 074c 331F rol r19
945 074e 220F lsl r18
946 0750 331F rol r19
947 0752 8091 0000 lds r24,ServoNickValue
948 0756 9091 0000 lds r25,(ServoNickValue)+1
949 075a 8217 cp r24,r18
950 075c 9307 cpc r25,r19
951 075e 7CF0 brlt .L125
952 0760 8091 0000 lds r24,EE_Parameter+48
953 0764 282F mov r18,r24
954 0766 3327 clr r19
955 0768 220F lsl r18
956 076a 331F rol r19
957 076c 220F lsl r18
958 076e 331F rol r19
959 0770 8091 0000 lds r24,ServoNickValue
960 0774 9091 0000 lds r25,(ServoNickValue)+1
961 0778 2817 cp r18,r24
962 077a 3907 cpc r19,r25
963 077c 24F4 brge .L77
964 .L125:
965 077e 3093 0000 sts (ServoNickValue)+1,r19
966 0782 2093 0000 sts ServoNickValue,r18
967 .L77:
968 0786 8091 0000 lds r24,RemainingPulse.1
969 078a 9091 0000 lds r25,(RemainingPulse.1)+1
970 078e 2091 0000 lds r18,ServoNickValue
971 0792 3091 0000 lds r19,(ServoNickValue)+1
972 0796 820F add r24,r18
973 0798 931F adc r25,r19
974 079a 8050 subi r24,lo8(-(-512))
975 079c 9240 sbci r25,hi8(-(-512))
976 079e 9093 0000 sts (RemainingPulse.1)+1,r25
977 07a2 8093 0000 sts RemainingPulse.1,r24
978 07a6 8091 0000 lds r24,ServoNickValue
979 07aa 9091 0000 lds r25,(ServoNickValue)+1
980 07ae 97FD sbrc r25,7
981 07b0 0396 adiw r24,3
982 .L79:
983 07b2 9595 asr r25
984 07b4 8795 ror r24
985 07b6 9595 asr r25
986 07b8 8795 ror r24
987 07ba 9093 0000 sts (ServoNickValue)+1,r25
988 07be 8093 0000 sts ServoNickValue,r24
989 07c2 2EC1 rjmp .L67
990 .L80:
991 07c4 8091 0000 lds r24,ServoRollOffset.5
992 07c8 9091 0000 lds r25,(ServoRollOffset.5)+1
993 07cc 9C01 movw r18,r24
994 07ce 220F lsl r18
995 07d0 331F rol r19
996 07d2 280F add r18,r24
997 07d4 391F adc r19,r25
998 07d6 8091 0000 lds r24,Parameter_ServoRollControl
999 07da 9927 clr r25
1000 07dc 880F lsl r24
1001 07de 991F rol r25
1002 07e0 880F lsl r24
1003 07e2 991F rol r25
1004 07e4 280F add r18,r24
1005 07e6 391F adc r19,r25
1006 07e8 37FF sbrs r19,7
1007 07ea 02C0 rjmp .L81
1008 07ec 2D5F subi r18,lo8(-(3))
1009 07ee 3F4F sbci r19,hi8(-(3))
1010 .L81:
1011 07f0 C901 movw r24,r18
1012 07f2 9595 asr r25
1013 07f4 8795 ror r24
1014 07f6 9595 asr r25
1015 07f8 8795 ror r24
1016 07fa 9093 0000 sts (ServoRollOffset.5)+1,r25
1017 07fe 8093 0000 sts ServoRollOffset.5,r24
1018 0802 9093 0000 sts (ServoRollValue)+1,r25
1019 0806 8093 0000 sts ServoRollValue,r24
1020 080a 8091 0000 lds r24,EE_Parameter+98
1021 080e 6091 0000 lds r22,EE_Parameter+50
1022 0812 A091 0000 lds r26,IntegralRoll
1023 0816 B091 0000 lds r27,(IntegralRoll)+1
1024 081a C091 0000 lds r28,(IntegralRoll)+2
1025 081e D091 0000 lds r29,(IntegralRoll)+3
1026 0822 81FF sbrs r24,1
1027 0824 2AC0 rjmp .L82
1028 0826 7727 clr r23
1029 0828 8827 clr r24
1030 082a 9927 clr r25
1031 082c 9D01 movw r18,r26
1032 082e AE01 movw r20,r28
1033 0830 D7FF sbrs r29,7
1034 0832 04C0 rjmp .L83
1035 0834 2158 subi r18,lo8(-(127))
1036 0836 3F4F sbci r19,hi8(-(127))
1037 0838 4F4F sbci r20,hlo8(-(127))
1038 083a 5F4F sbci r21,hhi8(-(127))
1039 .L83:
1040 083c E7E0 ldi r30,7
1041 083e 5595 1: asr r21
1042 0840 4795 ror r20
1043 0842 3795 ror r19
1044 0844 2795 ror r18
1045 0846 EA95 dec r30
1046 0848 D1F7 brne 1b
1047 084a 0E94 0000 call __mulsi3
1048 084e 9B01 movw r18,r22
1049 0850 AC01 movw r20,r24
1050 0852 97FF sbrs r25,7
1051 0854 04C0 rjmp .L84
1052 0856 215C subi r18,lo8(-(63))
1053 0858 3F4F sbci r19,hi8(-(63))
1054 085a 4F4F sbci r20,hlo8(-(63))
1055 085c 5F4F sbci r21,hhi8(-(63))
1056 .L84:
1057 085e C6E0 ldi r28,6
1058 0860 5595 1: asr r21
1059 0862 4795 ror r20
1060 0864 3795 ror r19
1061 0866 2795 ror r18
1062 0868 CA95 dec r28
1063 086a D1F7 brne 1b
1064 086c 8091 0000 lds r24,ServoRollValue
1065 0870 9091 0000 lds r25,(ServoRollValue)+1
1066 0874 820F add r24,r18
1067 0876 931F adc r25,r19
1068 0878 29C0 rjmp .L126
1069 .L82:
1070 087a 7727 clr r23
1071 087c 8827 clr r24
1072 087e 9927 clr r25
1073 0880 9D01 movw r18,r26
1074 0882 AE01 movw r20,r28
1075 0884 D7FF sbrs r29,7
1076 0886 04C0 rjmp .L86
1077 0888 2158 subi r18,lo8(-(127))
1078 088a 3F4F sbci r19,hi8(-(127))
1079 088c 4F4F sbci r20,hlo8(-(127))
1080 088e 5F4F sbci r21,hhi8(-(127))
1081 .L86:
1082 0890 B7E0 ldi r27,7
1083 0892 5595 1: asr r21
1084 0894 4795 ror r20
1085 0896 3795 ror r19
1086 0898 2795 ror r18
1087 089a BA95 dec r27
1088 089c D1F7 brne 1b
1089 089e 0E94 0000 call __mulsi3
1090 08a2 9B01 movw r18,r22
1091 08a4 AC01 movw r20,r24
1092 08a6 97FF sbrs r25,7
1093 08a8 04C0 rjmp .L87
1094 08aa 215C subi r18,lo8(-(63))
1095 08ac 3F4F sbci r19,hi8(-(63))
1096 08ae 4F4F sbci r20,hlo8(-(63))
1097 08b0 5F4F sbci r21,hhi8(-(63))
1098 .L87:
1099 08b2 A6E0 ldi r26,6
1100 08b4 5595 1: asr r21
1101 08b6 4795 ror r20
1102 08b8 3795 ror r19
1103 08ba 2795 ror r18
1104 08bc AA95 dec r26
1105 08be D1F7 brne 1b
1106 08c0 8091 0000 lds r24,ServoRollValue
1107 08c4 9091 0000 lds r25,(ServoRollValue)+1
1108 08c8 821B sub r24,r18
1109 08ca 930B sbc r25,r19
1110 .L126:
1111 08cc 9093 0000 sts (ServoRollValue)+1,r25
1112 08d0 8093 0000 sts ServoRollValue,r24
1113 08d4 8091 0000 lds r24,EE_Parameter+51
1114 08d8 282F mov r18,r24
1115 08da 3327 clr r19
1116 08dc 220F lsl r18
1117 08de 331F rol r19
1118 08e0 220F lsl r18
1119 08e2 331F rol r19
1120 08e4 8091 0000 lds r24,ServoRollValue
1121 08e8 9091 0000 lds r25,(ServoRollValue)+1
1122 08ec 8217 cp r24,r18
1123 08ee 9307 cpc r25,r19
1124 08f0 7CF0 brlt .L127
1125 08f2 8091 0000 lds r24,EE_Parameter+52
1126 08f6 282F mov r18,r24
1127 08f8 3327 clr r19
1128 08fa 220F lsl r18
1129 08fc 331F rol r19
1130 08fe 220F lsl r18
1131 0900 331F rol r19
1132 0902 8091 0000 lds r24,ServoRollValue
1133 0906 9091 0000 lds r25,(ServoRollValue)+1
1134 090a 2817 cp r18,r24
1135 090c 3907 cpc r19,r25
1136 090e 24F4 brge .L89
1137 .L127:
1138 0910 3093 0000 sts (ServoRollValue)+1,r19
1139 0914 2093 0000 sts ServoRollValue,r18
1140 .L89:
1141 0918 8091 0000 lds r24,RemainingPulse.1
1142 091c 9091 0000 lds r25,(RemainingPulse.1)+1
1143 0920 2091 0000 lds r18,ServoRollValue
1144 0924 3091 0000 lds r19,(ServoRollValue)+1
1145 0928 820F add r24,r18
1146 092a 931F adc r25,r19
1147 092c 8050 subi r24,lo8(-(-512))
1148 092e 9240 sbci r25,hi8(-(-512))
1149 0930 9093 0000 sts (RemainingPulse.1)+1,r25
1150 0934 8093 0000 sts RemainingPulse.1,r24
1151 0938 8091 0000 lds r24,ServoRollValue
1152 093c 9091 0000 lds r25,(ServoRollValue)+1
1153 0940 97FD sbrc r25,7
1154 0942 0396 adiw r24,3
1155 .L91:
1156 0944 9595 asr r25
1157 0946 8795 ror r24
1158 0948 9595 asr r25
1159 094a 8795 ror r24
1160 094c 9093 0000 sts (ServoRollValue)+1,r25
1161 0950 8093 0000 sts ServoRollValue,r24
1162 0954 65C0 rjmp .L67
1163 .L92:
1164 0956 8091 0000 lds r24,EE_Parameter+7
1165 095a E82F mov r30,r24
1166 095c FF27 clr r31
1167 095e EE0F add r30,r30
1168 0960 FF1F adc r31,r31
1169 0962 E050 subi r30,lo8(-(PPM_in))
1170 0964 F040 sbci r31,hi8(-(PPM_in))
1171 0966 8081 ld r24,Z
1172 0968 9181 ldd r25,Z+1
1173 096a 805E subi r24,lo8(-32)
1174 096c 9F4F sbci r25,hi8(-32)
1175 096e ACF1 brlt .L132
1176 0970 8081 ld r24,Z
1177 0972 9181 ldd r25,Z+1
1178 0974 8197 sbiw r24,33
1179 0976 1CF0 brlt .L95
1180 0978 8CED ldi r24,lo8(1500)
1181 097a 95E0 ldi r25,hi8(1500)
1182 097c 4DC0 rjmp .L128
1183 .L95:
1184 097e 8091 0000 lds r24,CameraShutterCycle
1185 0982 9091 0000 lds r25,(CameraShutterCycle)+1
1186 0986 C297 sbiw r24,50
1187 0988 78F0 brlo .L129
1188 098a 2091 0000 lds r18,CameraShutterCycleCounter
1189 098e 3091 0000 lds r19,(CameraShutterCycleCounter)+1
1190 0992 8091 0000 lds r24,CameraShutterCycle
1191 0996 9091 0000 lds r25,(CameraShutterCycle)+1
1192 099a 2817 cp r18,r24
1193 099c 3907 cpc r19,r25
1194 099e 49F4 brne .L99
1195 09a0 1092 0000 sts (CameraShutterCycleCounter)+1,__zero_reg__
1196 09a4 1092 0000 sts CameraShutterCycleCounter,__zero_reg__
1197 .L129:
1198 09a8 5093 0000 sts (RemainingPulse.1)+1,r21
1199 09ac 4093 0000 sts RemainingPulse.1,r20
1200 09b0 37C0 rjmp .L67
1201 .L99:
1202 09b2 8091 0000 lds r24,CameraShutterCycleCounter
1203 09b6 9091 0000 lds r25,(CameraShutterCycleCounter)+1
1204 09ba 0196 adiw r24,1
1205 09bc 9093 0000 sts (CameraShutterCycleCounter)+1,r25
1206 09c0 8093 0000 sts CameraShutterCycleCounter,r24
1207 09c4 2091 0000 lds r18,CameraShutterCycleCounter
1208 09c8 3091 0000 lds r19,(CameraShutterCycleCounter)+1
1209 09cc 8091 0000 lds r24,CameraShutterCycleOnCount
1210 09d0 9091 0000 lds r25,(CameraShutterCycleOnCount)+1
1211 09d4 2817 cp r18,r24
1212 09d6 3907 cpc r19,r25
1213 09d8 19F5 brne .L67
1214 .L132:
1215 09da 87E7 ldi r24,lo8(375)
1216 09dc 91E0 ldi r25,hi8(375)
1217 09de 1CC0 rjmp .L128
1218 .L102:
1219 09e0 8091 0000 lds r24,Parameter_Servo4
1220 09e4 02C0 rjmp .L133
1221 .L103:
1222 09e6 8091 0000 lds r24,Parameter_Servo5
1223 .L133:
1224 09ea 9927 clr r25
1225 09ec 880F lsl r24
1226 09ee 991F rol r25
1227 09f0 880F lsl r24
1228 09f2 991F rol r25
1229 09f4 8755 subi r24,lo8(-(425))
1230 09f6 9E4F sbci r25,hi8(-(425))
1231 09f8 0FC0 rjmp .L128
1232 .L104:
1233 09fa FF27 clr r31
1234 09fc EE0F add r30,r30
1235 09fe FF1F adc r31,r31
1236 0a00 E050 subi r30,lo8(-(PPM_in))
1237 0a02 F040 sbci r31,hi8(-(PPM_in))
1238 0a04 2081 ld r18,Z
1239 0a06 3181 ldd r19,Z+1
1240 0a08 220F add r18,r18
1241 0a0a 331F adc r19,r19
1242 0a0c 8091 0000 lds r24,RemainingPulse.1
1243 0a10 9091 0000 lds r25,(RemainingPulse.1)+1
1244 0a14 820F add r24,r18
1245 0a16 931F adc r25,r19
1246 .L128:
1247 0a18 9093 0000 sts (RemainingPulse.1)+1,r25
1248 0a1c 8093 0000 sts RemainingPulse.1,r24
1249 .L67:
1250 0a20 8091 0000 lds r24,RemainingPulse.1
1251 0a24 9091 0000 lds r25,(RemainingPulse.1)+1
1252 0a28 45E0 ldi r20,hi8(1501)
1253 0a2a 8D3D cpi r24,lo8(1501)
1254 0a2c 9407 cpc r25,r20
1255 0a2e 18F0 brlo .L106
1256 0a30 8CED ldi r24,lo8(1500)
1257 0a32 95E0 ldi r25,hi8(1500)
1258 0a34 05C0 rjmp .L130
1259 .L106:
1260 0a36 8757 subi r24,lo8(375)
1261 0a38 9140 sbci r25,hi8(375)
1262 0a3a 30F4 brsh .L107
1263 0a3c 87E7 ldi r24,lo8(375)
1264 0a3e 91E0 ldi r25,hi8(375)
1265 .L130:
1266 0a40 9093 0000 sts (RemainingPulse.1)+1,r25
1267 0a44 8093 0000 sts RemainingPulse.1,r24
1268 .L107:
1269 0a48 2091 0000 lds r18,RemainingPulse.1
1270 0a4c 3091 0000 lds r19,(RemainingPulse.1)+1
1271 0a50 2C5B subi r18,lo8(-(-188))
1272 0a52 3040 sbci r19,hi8(-(-188))
1273 0a54 3093 0000 sts (RemainingPulse.1)+1,r19
1274 0a58 2093 0000 sts RemainingPulse.1,r18
1275 0a5c 8091 0000 lds r24,ServoFrameTime.2
1276 0a60 9091 0000 lds r25,(ServoFrameTime.2)+1
1277 0a64 820F add r24,r18
1278 0a66 931F adc r25,r19
1279 .L134:
1280 0a68 9093 0000 sts (ServoFrameTime.2)+1,r25
1281 0a6c 8093 0000 sts ServoFrameTime.2,r24
1282 0a70 2FC0 rjmp .L109
1283 .L64:
1284 0a72 8091 B000 lds r24,176
1285 0a76 8064 ori r24,lo8(64)
1286 0a78 8093 B000 sts 176,r24
1287 0a7c 8CEB ldi r24,lo8(188)
1288 0a7e 90E0 ldi r25,hi8(188)
1289 0a80 9093 0000 sts (RemainingPulse.1)+1,r25
1290 0a84 8093 0000 sts RemainingPulse.1,r24
1291 0a88 8091 0000 lds r24,ServoFrameTime.2
1292 0a8c 9091 0000 lds r25,(ServoFrameTime.2)+1
1293 0a90 8454 subi r24,lo8(-(188))
1294 0a92 9F4F sbci r25,hi8(-(188))
1295 0a94 9093 0000 sts (ServoFrameTime.2)+1,r25
1296 0a98 8093 0000 sts ServoFrameTime.2,r24
1297 0a9c 8091 0000 lds r24,ServoActive
1298 0aa0 8823 tst r24
1299 0aa2 21F0 breq .L112
1300 0aa4 8091 0000 lds r24,SenderOkay
1301 0aa8 853B cpi r24,lo8(-75)
1302 0aaa 20F4 brsh .L111
1303 .L112:
1304 0aac 8091 0000 lds r24,ServoActive
1305 0ab0 8230 cpi r24,lo8(2)
1306 0ab2 11F4 brne .L110
1307 .L111:
1308 0ab4 4698 cbi 40-0x20,6
1309 0ab6 01C0 rjmp .L113
1310 .L110:
1311 0ab8 469A sbi 40-0x20,6
1312 .L113:
1313 0aba 8091 0000 lds r24,ServoIndex.3
1314 0abe 8F5F subi r24,lo8(-(1))
1315 0ac0 8093 0000 sts ServoIndex.3,r24
1316 0ac4 9091 0000 lds r25,EE_Parameter+53
1317 0ac8 9817 cp r25,r24
1318 0aca 10F4 brsh .L109
1319 0acc 1092 0000 sts ServoIndex.3,__zero_reg__
1320 .L109:
1321 0ad0 81E0 ldi r24,lo8(1)
1322 0ad2 8093 0000 sts PulseOutput.0,r24
1323 .L62:
1324 0ad6 2091 0000 lds r18,RemainingPulse.1
1325 0ada 3091 0000 lds r19,(RemainingPulse.1)+1
1326 0ade 81E0 ldi r24,hi8(383)
1327 0ae0 2F37 cpi r18,lo8(383)
1328 0ae2 3807 cpc r19,r24
1329 0ae4 30F0 brlo .L115
1330 0ae6 8FEF ldi r24,lo8(-1)
1331 0ae8 8093 B300 sts 179,r24
1332 0aec 2F5F subi r18,lo8(-(-255))
1333 0aee 3040 sbci r19,hi8(-(-255))
1334 0af0 0FC0 rjmp .L131
1335 .L115:
1336 0af2 2F3F cpi r18,255
1337 0af4 3105 cpc r19,__zero_reg__
1338 0af6 C9F0 breq .L117
1339 0af8 C0F0 brlo .L117
1340 0afa A901 movw r20,r18
1341 0afc 4F5F subi r20,lo8(-(-255))
1342 0afe 5040 sbci r21,hi8(-(-255))
1343 0b00 4F37 cpi r20,127
1344 0b02 5105 cpc r21,__zero_reg__
1345 0b04 50F4 brsh .L118
1346 0b06 80E8 ldi r24,lo8(-128)
1347 0b08 8093 B300 sts 179,r24
1348 0b0c 2058 subi r18,lo8(-(-128))
1349 0b0e 3040 sbci r19,hi8(-(-128))
1350 .L131:
1351 0b10 3093 0000 sts (RemainingPulse.1)+1,r19
1352 0b14 2093 0000 sts RemainingPulse.1,r18
1353 0b18 12C0 rjmp .L43
1354 .L118:
1355 0b1a 8FEF ldi r24,lo8(-1)
1356 0b1c 8093 B300 sts 179,r24
1357 0b20 5093 0000 sts (RemainingPulse.1)+1,r21
1358 0b24 4093 0000 sts RemainingPulse.1,r20
1359 0b28 0AC0 rjmp .L43
1360 .L117:
1361 0b2a 8091 0000 lds r24,RemainingPulse.1
1362 0b2e 8093 B300 sts 179,r24
1363 0b32 1092 0000 sts (RemainingPulse.1)+1,__zero_reg__
1364 0b36 1092 0000 sts RemainingPulse.1,__zero_reg__
1365 0b3a 1092 0000 sts PulseOutput.0,__zero_reg__
1366 .L43:
1367 /* epilogue: frame size=0 */
1368 0b3e FF91 pop r31
1369 0b40 EF91 pop r30
1370 0b42 DF91 pop r29
1371 0b44 CF91 pop r28
1372 0b46 BF91 pop r27
1373 0b48 AF91 pop r26
1374 0b4a 9F91 pop r25
1375 0b4c 8F91 pop r24
1376 0b4e 7F91 pop r23
1377 0b50 6F91 pop r22
1378 0b52 5F91 pop r21
1379 0b54 4F91 pop r20
1380 0b56 3F91 pop r19
1381 0b58 2F91 pop r18
1382 0b5a 0F90 pop __tmp_reg__
1383 0b5c 0FBE out __SREG__,__tmp_reg__
1384 0b5e 0F90 pop __tmp_reg__
1385 0b60 1F90 pop __zero_reg__
1386 0b62 1895 reti
1387 /* epilogue end (size=19) */
1388 /* function __vector_9 size 1056 (1018) */
1390 .lcomm tim_main,2
1391 /* File "timer0.c": code 1473 = 0x05c1 (1389), prologues 39, epilogues 45 */
DEFINED SYMBOLS
*ABS*:00000000 timer0.c
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:15 .bss:00000000 ServoRollValue
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:21 .bss:00000002 ServoNickValue
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:27 .data:00000000 BeepMuster
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:34 .bss:00000004 ServoActive
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:40 .bss:00000005 SendSPI
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:46 .bss:00000006 beeptime
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:52 .bss:00000008 cntKompass
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:58 .bss:0000000a UpdateMotor
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:64 .bss:0000000b CountMilliseconds
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:69 .data:00000002 CameraShutterCycleOnCount
.bss:0000000d CameraShutterCycleCounter
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:71 .bss:0000000f CameraShutterCycle
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:75 .data:00000004 cnt_1ms.6
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:72 .bss:00000011 cnt.7
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:77 .bss:00000012 compass_active.8
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:82 .text:00000000 __vector_18
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:305 .text:00000216 SetDelay
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:321 .text:00000228 CheckDelay
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:340 .text:00000240 Delay_ms
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:361 .text:0000025a Delay_ms_Mess
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:391 .text:0000028a TIMER2_Init
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:447 .text:0000030a Timer_Init
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:475 .bss:00000019 tim_main
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:78 .bss:00000013 PulseOutput.0
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:472 .bss:00000014 RemainingPulse.1
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:473 .bss:00000016 ServoFrameTime.2
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:474 .bss:00000018 ServoIndex.3
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:479 .data:00000005 ServoNickOffset.4
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:483 .data:00000007 ServoRollOffset.5
C:\Users\Arthur-P\AppData\Local\Temp/cccRbaaa.s:488 .text:00000338 __vector_9
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
SpektrumTimer
PlatinenVersion
NaviDataOkay
EE_Parameter
__udivmodhi4
KompassValue
KompassStartwert
__divmodhi4
KompassRichtung
AdReady
Parameter_UserParam8
Parameter_ServoNickControl
IntegralNick
__mulsi3
Parameter_ServoRollControl
IntegralRoll
PPM_in
Parameter_Servo4
Parameter_Servo5
SenderOkay