1,1393 → 1,1267 |
1 .file "timer0.c" |
2 .arch atmega644p |
3 __SREG__ = 0x3f |
4 __SP_H__ = 0x3e |
5 __SP_L__ = 0x3d |
2 __SREG__ = 0x3f |
3 __SP_H__ = 0x3e |
4 __SP_L__ = 0x3d |
5 __CCP__ = 0x34 |
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 */ |
8 .text |
9 .global __vector_18 |
11 __vector_18: |
12 0000 1F92 push __zero_reg__ |
13 0002 0F92 push r0 |
14 0004 0FB6 in r0,__SREG__ |
15 0006 0F92 push r0 |
16 0008 1124 clr __zero_reg__ |
17 000a 2F93 push r18 |
18 000c 3F93 push r19 |
19 000e 5F93 push r21 |
20 0010 6F93 push r22 |
21 0012 7F93 push r23 |
22 0014 8F93 push r24 |
23 0016 9F93 push r25 |
24 0018 AF93 push r26 |
25 001a BF93 push r27 |
26 /* prologue: Signal */ |
27 /* frame size = 0 */ |
28 001c 8091 0000 lds r24,SendSPI |
29 0020 8823 tst r24 |
30 0022 01F0 breq .L2 |
31 0024 8091 0000 lds r24,SendSPI |
32 0028 8150 subi r24,lo8(-(-1)) |
33 002a 8093 0000 sts SendSPI,r24 |
34 .L2: |
35 002e 8091 0000 lds r24,SpektrumTimer |
36 0032 8823 tst r24 |
37 0034 01F0 breq .L3 |
38 0036 8150 subi r24,lo8(-(-1)) |
39 0038 8093 0000 sts SpektrumTimer,r24 |
40 .L3: |
41 003c 8091 0000 lds r24,cnt.2239 |
42 0040 8150 subi r24,lo8(-(-1)) |
43 0042 8093 0000 sts cnt.2239,r24 |
44 0046 8F5F subi r24,lo8(-(1)) |
45 0048 01F0 breq .+2 |
46 004a 00C0 rjmp .L4 |
47 004c 89E0 ldi r24,lo8(9) |
48 004e 8093 0000 sts cnt.2239,r24 |
49 0052 8091 0000 lds r24,CountMilliseconds |
50 0056 9091 0000 lds r25,(CountMilliseconds)+1 |
51 005a 0196 adiw r24,1 |
52 005c 9093 0000 sts (CountMilliseconds)+1,r25 |
53 0060 8093 0000 sts CountMilliseconds,r24 |
54 0064 8091 0000 lds r24,cnt_1ms.2238 |
55 0068 8F5F subi r24,lo8(-(1)) |
56 006a 8170 andi r24,lo8(1) |
57 006c 8093 0000 sts cnt_1ms.2238,r24 |
58 0070 8823 tst r24 |
59 0072 01F4 brne .L5 |
60 0074 81E0 ldi r24,lo8(1) |
61 0076 8093 0000 sts UpdateMotor,r24 |
62 .L5: |
63 007a 3499 sbic 38-32,4 |
64 007c 00C0 rjmp .L6 |
65 007e 81E0 ldi r24,lo8(1) |
66 0080 8093 0000 sts compass_active.2240,r24 |
67 .L6: |
68 0084 8091 0000 lds r24,beeptime |
69 0088 9091 0000 lds r25,(beeptime)+1 |
70 008c 892B or r24,r25 |
71 008e 01F0 breq .L7 |
72 0090 8091 0000 lds r24,beeptime |
73 0094 9091 0000 lds r25,(beeptime)+1 |
74 0098 0B97 sbiw r24,11 |
75 009a 00F0 brlo .L8 |
76 009c 8091 0000 lds r24,beeptime |
77 00a0 9091 0000 lds r25,(beeptime)+1 |
78 00a4 0A97 sbiw r24,10 |
79 00a6 9093 0000 sts (beeptime)+1,r25 |
80 00aa 8093 0000 sts beeptime,r24 |
81 00ae 00C0 rjmp .L9 |
82 .L8: |
83 00b0 1092 0000 sts (beeptime)+1,__zero_reg__ |
84 00b4 1092 0000 sts beeptime,__zero_reg__ |
85 .L9: |
86 00b8 8091 0000 lds r24,beeptime |
87 00bc 9091 0000 lds r25,(beeptime)+1 |
88 00c0 2091 0000 lds r18,BeepMuster |
89 00c4 3091 0000 lds r19,(BeepMuster)+1 |
90 00c8 8223 and r24,r18 |
91 00ca 9323 and r25,r19 |
92 00cc 892B or r24,r25 |
93 00ce 01F0 breq .+2 |
94 00d0 00C0 rjmp .L10 |
95 00d2 00C0 rjmp .L11 |
96 .L7: |
97 00d4 8FEF ldi r24,lo8(-1) |
98 00d6 9FEF ldi r25,hi8(-1) |
99 00d8 9093 0000 sts (BeepMuster)+1,r25 |
100 00dc 8093 0000 sts BeepMuster,r24 |
101 .L11: |
102 00e0 8091 0000 lds r24,PlatinenVersion |
103 00e4 8A30 cpi r24,lo8(10) |
104 00e6 01F4 brne .L22 |
105 00e8 00C0 rjmp .L24 |
106 .L25: |
107 00ea 5A9A sbi 43-32,2 |
108 00ec 00C0 rjmp .L4 |
109 .L23: |
110 00ee 479A sbi 40-32,7 |
111 00f0 00C0 rjmp .L4 |
112 .L24: |
113 00f2 5A98 cbi 43-32,2 |
114 00f4 00C0 rjmp .L4 |
115 .L22: |
116 00f6 4798 cbi 40-32,7 |
117 .L4: |
118 00f8 8091 0000 lds r24,compass_active.2240 |
119 00fc 8823 tst r24 |
120 00fe 01F4 brne .+2 |
121 0100 00C0 rjmp .L21 |
122 0102 8091 0000 lds r24,NaviDataOkay |
123 0106 8823 tst r24 |
124 0108 01F0 breq .+2 |
125 010a 00C0 rjmp .L21 |
126 010c 8091 0000 lds r24,EE_Parameter+13 |
127 0110 83FF sbrs r24,3 |
128 0112 00C0 rjmp .L21 |
129 0114 349B sbis 38-32,4 |
130 0116 00C0 rjmp .L15 |
131 0118 8091 0000 lds r24,cntKompass |
132 011c 9091 0000 lds r25,(cntKompass)+1 |
133 0120 0196 adiw r24,1 |
134 0122 9093 0000 sts (cntKompass)+1,r25 |
135 0126 8093 0000 sts cntKompass,r24 |
136 012a 8091 0000 lds r24,cntKompass |
137 012e 9091 0000 lds r25,(cntKompass)+1 |
138 0132 895E subi r24,lo8(1001) |
139 0134 9340 sbci r25,hi8(1001) |
140 0136 00F4 brsh .+2 |
141 0138 00C0 rjmp .L21 |
142 013a 1092 0000 sts compass_active.2240,__zero_reg__ |
143 013e 00C0 rjmp .L21 |
144 .L15: |
145 0140 8091 0000 lds r24,cntKompass |
146 0144 9091 0000 lds r25,(cntKompass)+1 |
147 0148 892B or r24,r25 |
148 014a 01F4 brne .+2 |
149 014c 00C0 rjmp .L16 |
150 014e 8091 0000 lds r24,cntKompass |
151 0152 9091 0000 lds r25,(cntKompass)+1 |
152 0156 8A56 subi r24,lo8(362) |
153 0158 9140 sbci r25,hi8(362) |
154 015a 00F4 brsh .L16 |
155 015c 2091 0000 lds r18,cntKompass |
156 0160 3091 0000 lds r19,(cntKompass)+1 |
157 0164 8091 0000 lds r24,cntKompass |
158 0168 9091 0000 lds r25,(cntKompass)+1 |
159 016c 69E2 ldi r22,lo8(41) |
160 016e 70E0 ldi r23,hi8(41) |
161 0170 0E94 0000 call __udivmodhi4 |
162 0174 260F add r18,r22 |
163 0176 371F adc r19,r23 |
164 0178 3093 0000 sts (cntKompass)+1,r19 |
165 017c 2093 0000 sts cntKompass,r18 |
166 0180 8091 0000 lds r24,cntKompass |
167 0184 9091 0000 lds r25,(cntKompass)+1 |
168 0188 0B97 sbiw r24,11 |
169 018a 00F0 brlo .L17 |
170 018c 8091 0000 lds r24,cntKompass |
171 0190 9091 0000 lds r25,(cntKompass)+1 |
172 0194 0A97 sbiw r24,10 |
173 0196 9093 0000 sts (KompassValue)+1,r25 |
174 019a 8093 0000 sts KompassValue,r24 |
175 019e 00C0 rjmp .L18 |
176 .L17: |
177 01a0 1092 0000 sts (KompassValue)+1,__zero_reg__ |
178 01a4 1092 0000 sts KompassValue,__zero_reg__ |
179 .L18: |
180 01a8 8091 0000 lds r24,KompassValue |
181 01ac 9091 0000 lds r25,(KompassValue)+1 |
182 01b0 845E subi r24,lo8(-(540)) |
183 01b2 9D4F sbci r25,hi8(-(540)) |
184 01b4 2091 0000 lds r18,KompassStartwert |
185 01b8 3091 0000 lds r19,(KompassStartwert)+1 |
186 01bc 821B sub r24,r18 |
187 01be 930B sbc r25,r19 |
188 01c0 68E6 ldi r22,lo8(360) |
189 01c2 71E0 ldi r23,hi8(360) |
190 01c4 0E94 0000 call __divmodhi4 |
191 01c8 845B subi r24,lo8(-(-180)) |
192 01ca 9040 sbci r25,hi8(-(-180)) |
193 01cc 9093 0000 sts (KompassRichtung)+1,r25 |
194 01d0 8093 0000 sts KompassRichtung,r24 |
195 .L16: |
196 01d4 1092 0000 sts (cntKompass)+1,__zero_reg__ |
197 01d8 1092 0000 sts cntKompass,__zero_reg__ |
198 01dc 00C0 rjmp .L21 |
199 .L10: |
200 01de 8091 0000 lds r24,PlatinenVersion |
201 01e2 8A30 cpi r24,lo8(10) |
202 01e4 01F0 breq .+2 |
203 01e6 00C0 rjmp .L23 |
204 01e8 00C0 rjmp .L25 |
205 .L21: |
206 /* epilogue start */ |
207 01ea BF91 pop r27 |
208 01ec AF91 pop r26 |
209 01ee 9F91 pop r25 |
210 01f0 8F91 pop r24 |
211 01f2 7F91 pop r23 |
212 01f4 6F91 pop r22 |
213 01f6 5F91 pop r21 |
214 01f8 3F91 pop r19 |
215 01fa 2F91 pop r18 |
216 01fc 0F90 pop r0 |
217 01fe 0FBE out __SREG__,r0 |
218 0200 0F90 pop r0 |
219 0202 1F90 pop __zero_reg__ |
220 0204 1895 reti |
222 .global SetDelay |
224 SetDelay: |
225 /* prologue: function */ |
226 /* frame size = 0 */ |
227 0206 2091 0000 lds r18,CountMilliseconds |
228 020a 3091 0000 lds r19,(CountMilliseconds)+1 |
229 020e 2F5F subi r18,lo8(-(1)) |
230 0210 3F4F sbci r19,hi8(-(1)) |
231 0212 280F add r18,r24 |
232 0214 391F adc r19,r25 |
233 0216 C901 movw r24,r18 |
234 /* epilogue start */ |
235 0218 0895 ret |
237 .global CheckDelay |
239 CheckDelay: |
240 /* prologue: function */ |
241 /* frame size = 0 */ |
242 021a 2091 0000 lds r18,CountMilliseconds |
243 021e 3091 0000 lds r19,(CountMilliseconds)+1 |
244 0222 821B sub r24,r18 |
245 0224 930B sbc r25,r19 |
246 0226 8070 andi r24,lo8(-32768) |
247 0228 9078 andi r25,hi8(-32768) |
248 022a 892F mov r24,r25 |
249 022c 8695 lsr r24 |
250 /* epilogue start */ |
251 022e 0895 ret |
253 .global Delay_ms |
255 Delay_ms: |
256 /* prologue: function */ |
257 /* frame size = 0 */ |
258 0230 2091 0000 lds r18,CountMilliseconds |
259 0234 3091 0000 lds r19,(CountMilliseconds)+1 |
260 0238 2F5F subi r18,lo8(-(1)) |
261 023a 3F4F sbci r19,hi8(-(1)) |
262 023c 280F add r18,r24 |
263 023e 391F adc r19,r25 |
264 .L31: |
265 0240 8091 0000 lds r24,CountMilliseconds |
266 0244 9091 0000 lds r25,(CountMilliseconds)+1 |
267 0248 A901 movw r20,r18 |
268 024a 481B sub r20,r24 |
269 024c 590B sbc r21,r25 |
270 024e CA01 movw r24,r20 |
271 0250 8070 andi r24,lo8(-32768) |
272 0252 9078 andi r25,hi8(-32768) |
273 0254 892F mov r24,r25 |
274 0256 8695 lsr r24 |
275 0258 01F0 breq .L31 |
276 /* epilogue start */ |
277 025a 0895 ret |
279 .global Delay_ms_Mess |
281 Delay_ms_Mess: |
282 /* prologue: function */ |
283 /* frame size = 0 */ |
284 025c 2091 0000 lds r18,CountMilliseconds |
285 0260 3091 0000 lds r19,(CountMilliseconds)+1 |
286 0264 2F5F subi r18,lo8(-(1)) |
287 0266 3F4F sbci r19,hi8(-(1)) |
288 0268 280F add r18,r24 |
289 026a 391F adc r19,r25 |
290 026c 4FEC ldi r20,lo8(-49) |
291 026e 00C0 rjmp .L40 |
292 .L36: |
293 0270 8091 0000 lds r24,AdReady |
294 0274 8823 tst r24 |
295 0276 01F0 breq .L40 |
296 0278 1092 0000 sts AdReady,__zero_reg__ |
297 027c 4093 7A00 sts 122,r20 |
298 .L40: |
299 0280 8091 0000 lds r24,CountMilliseconds |
300 0284 9091 0000 lds r25,(CountMilliseconds)+1 |
301 0288 B901 movw r22,r18 |
302 028a 681B sub r22,r24 |
303 028c 790B sbc r23,r25 |
304 028e CB01 movw r24,r22 |
305 0290 8070 andi r24,lo8(-32768) |
306 0292 9078 andi r25,hi8(-32768) |
307 0294 892F mov r24,r25 |
308 0296 8695 lsr r24 |
309 0298 01F0 breq .L36 |
310 /* epilogue start */ |
311 029a 0895 ret |
313 .global TIMER2_Init |
315 TIMER2_Init: |
316 /* prologue: function */ |
317 /* frame size = 0 */ |
318 029c 4FB7 in r20,__SREG__ |
319 029e 2091 0000 lds r18,Parameter_UserParam8 |
320 02a2 30E0 ldi r19,lo8(0) |
321 02a4 2F77 andi r18,lo8(127) |
322 02a6 3070 andi r19,hi8(127) |
323 02a8 C901 movw r24,r18 |
324 02aa 880F lsl r24 |
325 02ac 991F rol r25 |
326 02ae 880F lsl r24 |
327 02b0 991F rol r25 |
328 02b2 820F add r24,r18 |
329 02b4 931F adc r25,r19 |
330 02b6 9093 0000 sts (CameraShutterCycle)+1,r25 |
331 02ba 8093 0000 sts CameraShutterCycle,r24 |
332 /* #APP */ |
333 ; 176 "timer0.c" 1 |
334 02be F894 cli |
335 ; 0 "" 2 |
336 /* #NOAPP */ |
337 02c0 5F98 cbi 43-32,7 |
338 02c2 3E9A sbi 39-32,6 |
339 02c4 469A sbi 40-32,6 |
340 02c6 A0EB ldi r26,lo8(176) |
341 02c8 B0E0 ldi r27,hi8(176) |
342 02ca 8C91 ld r24,X |
343 02cc 8F70 andi r24,lo8(15) |
344 02ce 8C93 st X,r24 |
345 02d0 8C91 ld r24,X |
346 02d2 8360 ori r24,lo8(3) |
347 02d4 8C93 st X,r24 |
348 02d6 E1EB ldi r30,lo8(177) |
349 02d8 F0E0 ldi r31,hi8(177) |
350 02da 8081 ld r24,Z |
351 02dc 8B73 andi r24,lo8(59) |
352 02de 8083 st Z,r24 |
353 02e0 8081 ld r24,Z |
354 02e2 8B60 ori r24,lo8(11) |
355 02e4 8083 st Z,r24 |
356 02e6 1092 B200 sts 178,__zero_reg__ |
357 02ea 8FEF ldi r24,lo8(-1) |
358 02ec 8093 B300 sts 179,r24 |
359 02f0 8C91 ld r24,X |
360 02f2 8068 ori r24,lo8(-128) |
361 02f4 8C93 st X,r24 |
362 02f6 E0E7 ldi r30,lo8(112) |
363 02f8 F0E0 ldi r31,hi8(112) |
364 02fa 8081 ld r24,Z |
365 02fc 8A7F andi r24,lo8(-6) |
366 02fe 8083 st Z,r24 |
367 0300 8081 ld r24,Z |
368 0302 8260 ori r24,lo8(2) |
369 0304 8083 st Z,r24 |
370 0306 4FBF out __SREG__,r20 |
371 /* epilogue start */ |
372 0308 0895 ret |
374 .global Timer_Init |
376 Timer_Init: |
377 /* prologue: function */ |
378 /* frame size = 0 */ |
379 030a 8091 0000 lds r24,CountMilliseconds |
380 030e 9091 0000 lds r25,(CountMilliseconds)+1 |
381 0312 0B96 adiw r24,11 |
382 0314 9093 0000 sts (tim_main)+1,r25 |
383 0318 8093 0000 sts tim_main,r24 |
384 031c 82E0 ldi r24,lo8(2) |
385 031e 85BD out 69-32,r24 |
386 0320 83EA ldi r24,lo8(-93) |
387 0322 84BD out 68-32,r24 |
388 0324 17BC out 71-32,__zero_reg__ |
389 0326 84EB ldi r24,lo8(-76) |
390 0328 88BD out 72-32,r24 |
391 032a 86E0 ldi r24,lo8(6) |
392 032c 86BD out 70-32,r24 |
393 032e EEE6 ldi r30,lo8(110) |
394 0330 F0E0 ldi r31,hi8(110) |
395 0332 8081 ld r24,Z |
396 0334 8160 ori r24,lo8(1) |
397 0336 8083 st Z,r24 |
398 /* epilogue start */ |
399 0338 0895 ret |
401 .global __vector_9 |
403 __vector_9: |
404 033a 1F92 push __zero_reg__ |
405 033c 0F92 push r0 |
406 033e 0FB6 in r0,__SREG__ |
407 0340 0F92 push r0 |
408 0342 1124 clr __zero_reg__ |
409 0344 CF92 push r12 |
410 0346 DF92 push r13 |
411 0348 EF92 push r14 |
412 034a FF92 push r15 |
413 034c 0F93 push r16 |
414 034e 1F93 push r17 |
415 0350 2F93 push r18 |
416 0352 3F93 push r19 |
417 0354 4F93 push r20 |
418 0356 5F93 push r21 |
419 0358 6F93 push r22 |
420 035a 7F93 push r23 |
421 035c 8F93 push r24 |
422 035e 9F93 push r25 |
423 0360 AF93 push r26 |
424 0362 BF93 push r27 |
425 0364 EF93 push r30 |
426 0366 FF93 push r31 |
427 /* prologue: Signal */ |
428 /* frame size = 0 */ |
429 0368 8091 0000 lds r24,PlatinenVersion |
430 036c 8431 cpi r24,lo8(20) |
431 036e 00F0 brlo .+2 |
432 0370 00C0 rjmp .L46 |
433 0372 8091 0000 lds r24,Parameter_UserParam8 |
434 0376 87FD sbrc r24,7 |
435 0378 00C0 rjmp .L46 |
436 037a 8091 0000 lds r24,PulseOutput.2393 |
437 037e 8823 tst r24 |
438 0380 01F0 breq .+2 |
439 0382 00C0 rjmp .L47 |
440 0384 8091 B000 lds r24,176 |
441 0388 86FF sbrs r24,6 |
442 038a 00C0 rjmp .L48 |
443 038c 8091 B000 lds r24,176 |
444 0390 8F7B andi r24,lo8(-65) |
445 0392 8093 B000 sts 176,r24 |
446 0396 8091 0000 lds r24,Parameter_ServoNickControl |
447 039a 90E0 ldi r25,lo8(0) |
448 039c 880F lsl r24 |
449 039e 991F rol r25 |
450 03a0 880F lsl r24 |
451 03a2 991F rol r25 |
452 03a4 4091 0000 lds r20,ServoNickOffset.2397 |
453 03a8 5091 0000 lds r21,(ServoNickOffset.2397)+1 |
454 03ac 9A01 movw r18,r20 |
455 03ae 220F lsl r18 |
456 03b0 331F rol r19 |
457 03b2 240F add r18,r20 |
458 03b4 351F adc r19,r21 |
459 03b6 820F add r24,r18 |
460 03b8 931F adc r25,r19 |
461 03ba 64E0 ldi r22,lo8(4) |
462 03bc 70E0 ldi r23,hi8(4) |
463 03be 0E94 0000 call __divmodhi4 |
464 03c2 7093 0000 sts (ServoNickOffset.2397)+1,r23 |
465 03c6 6093 0000 sts ServoNickOffset.2397,r22 |
466 03ca 7093 0000 sts (ServoNickValue)+1,r23 |
467 03ce 6093 0000 sts ServoNickValue,r22 |
468 03d2 8091 0000 lds r24,EE_Parameter+98 |
469 03d6 2091 0000 lds r18,IntegralNick |
470 03da 3091 0000 lds r19,(IntegralNick)+1 |
471 03de 4091 0000 lds r20,(IntegralNick)+2 |
472 03e2 5091 0000 lds r21,(IntegralNick)+3 |
473 03e6 80FF sbrs r24,0 |
474 03e8 00C0 rjmp .L49 |
475 03ea C090 0000 lds r12,ServoNickValue |
476 03ee D090 0000 lds r13,(ServoNickValue)+1 |
477 03f2 E090 0000 lds r14,EE_Parameter+46 |
478 03f6 FF24 clr r15 |
479 03f8 00E0 ldi r16,lo8(0) |
480 03fa 10E0 ldi r17,hi8(0) |
481 03fc CA01 movw r24,r20 |
482 03fe B901 movw r22,r18 |
483 0400 20E8 ldi r18,lo8(128) |
484 0402 30E0 ldi r19,hi8(128) |
485 0404 40E0 ldi r20,hlo8(128) |
486 0406 50E0 ldi r21,hhi8(128) |
487 0408 0E94 0000 call __divmodsi4 |
488 040c C801 movw r24,r16 |
489 040e B701 movw r22,r14 |
490 0410 0E94 0000 call __mulsi3 |
491 0414 F2E0 ldi r31,2 |
492 0416 660F 1: lsl r22 |
493 0418 771F rol r23 |
494 041a 881F rol r24 |
495 041c 991F rol r25 |
496 041e FA95 dec r31 |
497 0420 01F4 brne 1b |
498 0422 20E0 ldi r18,lo8(256) |
499 0424 31E0 ldi r19,hi8(256) |
500 0426 40E0 ldi r20,hlo8(256) |
501 0428 50E0 ldi r21,hhi8(256) |
502 042a 0E94 0000 call __divmodsi4 |
503 042e C20E add r12,r18 |
504 0430 D31E adc r13,r19 |
505 0432 00C0 rjmp .L90 |
506 .L49: |
507 0434 C090 0000 lds r12,ServoNickValue |
508 0438 D090 0000 lds r13,(ServoNickValue)+1 |
509 043c E090 0000 lds r14,EE_Parameter+46 |
510 0440 FF24 clr r15 |
511 0442 00E0 ldi r16,lo8(0) |
512 0444 10E0 ldi r17,hi8(0) |
513 0446 CA01 movw r24,r20 |
514 0448 B901 movw r22,r18 |
515 044a 20E8 ldi r18,lo8(128) |
516 044c 30E0 ldi r19,hi8(128) |
517 044e 40E0 ldi r20,hlo8(128) |
518 0450 50E0 ldi r21,hhi8(128) |
519 0452 0E94 0000 call __divmodsi4 |
520 0456 C801 movw r24,r16 |
521 0458 B701 movw r22,r14 |
522 045a 0E94 0000 call __mulsi3 |
523 045e E2E0 ldi r30,2 |
524 0460 660F 1: lsl r22 |
525 0462 771F rol r23 |
526 0464 881F rol r24 |
527 0466 991F rol r25 |
528 0468 EA95 dec r30 |
529 046a 01F4 brne 1b |
530 046c 20E0 ldi r18,lo8(256) |
531 046e 31E0 ldi r19,hi8(256) |
532 0470 40E0 ldi r20,hlo8(256) |
533 0472 50E0 ldi r21,hhi8(256) |
534 0474 0E94 0000 call __divmodsi4 |
535 0478 C21A sub r12,r18 |
536 047a D30A sbc r13,r19 |
537 .L90: |
538 047c D092 0000 sts (ServoNickValue)+1,r13 |
539 0480 C092 0000 sts ServoNickValue,r12 |
540 0484 2091 0000 lds r18,ServoNickValue |
541 0488 3091 0000 lds r19,(ServoNickValue)+1 |
542 048c 8091 0000 lds r24,EE_Parameter+47 |
543 0490 90E0 ldi r25,lo8(0) |
544 0492 880F lsl r24 |
545 0494 991F rol r25 |
546 0496 880F lsl r24 |
547 0498 991F rol r25 |
548 049a 2817 cp r18,r24 |
549 049c 3907 cpc r19,r25 |
550 049e 04F0 brlt .L91 |
551 .L51: |
552 04a0 2091 0000 lds r18,ServoNickValue |
553 04a4 3091 0000 lds r19,(ServoNickValue)+1 |
554 04a8 8091 0000 lds r24,EE_Parameter+48 |
555 04ac 90E0 ldi r25,lo8(0) |
556 04ae 880F lsl r24 |
557 04b0 991F rol r25 |
558 04b2 880F lsl r24 |
559 04b4 991F rol r25 |
560 04b6 8217 cp r24,r18 |
561 04b8 9307 cpc r25,r19 |
562 04ba 04F4 brge .L52 |
563 .L91: |
564 04bc 9093 0000 sts (ServoNickValue)+1,r25 |
565 04c0 8093 0000 sts ServoNickValue,r24 |
566 .L52: |
567 04c4 2091 0000 lds r18,ServoNickValue |
568 04c8 3091 0000 lds r19,(ServoNickValue)+1 |
569 04cc 2755 subi r18,lo8(-(425)) |
570 04ce 3E4F sbci r19,hi8(-(425)) |
571 04d0 3093 0000 sts (RemainingPulse.2394)+1,r19 |
572 04d4 2093 0000 sts RemainingPulse.2394,r18 |
573 04d8 8091 0000 lds r24,ServoNickValue |
574 04dc 9091 0000 lds r25,(ServoNickValue)+1 |
575 04e0 64E0 ldi r22,lo8(4) |
576 04e2 70E0 ldi r23,hi8(4) |
577 04e4 0E94 0000 call __divmodhi4 |
578 04e8 7093 0000 sts (ServoNickValue)+1,r23 |
579 04ec 6093 0000 sts ServoNickValue,r22 |
580 04f0 45E0 ldi r20,hi8(1501) |
581 04f2 2D3D cpi r18,lo8(1501) |
582 04f4 3407 cpc r19,r20 |
583 04f6 00F0 brlo .L53 |
584 04f8 8CED ldi r24,lo8(1500) |
585 04fa 95E0 ldi r25,hi8(1500) |
586 04fc 00C0 rjmp .L92 |
587 .L53: |
588 04fe 2757 subi r18,lo8(375) |
589 0500 3140 sbci r19,hi8(375) |
590 0502 00F4 brsh .L54 |
591 0504 87E7 ldi r24,lo8(375) |
592 0506 91E0 ldi r25,hi8(375) |
593 .L92: |
594 0508 9093 0000 sts (RemainingPulse.2394)+1,r25 |
595 050c 8093 0000 sts RemainingPulse.2394,r24 |
596 .L54: |
597 0510 8091 0000 lds r24,RemainingPulse.2394 |
598 0514 9091 0000 lds r25,(RemainingPulse.2394)+1 |
599 0518 00C0 rjmp .L103 |
600 .L48: |
601 051a 8091 B000 lds r24,176 |
602 051e 8064 ori r24,lo8(64) |
603 0520 8093 B000 sts 176,r24 |
604 0524 8091 0000 lds r24,EE_Parameter+53 |
605 0528 90E0 ldi r25,lo8(0) |
606 052a 2DED ldi r18,lo8(1757) |
607 052c 36E0 ldi r19,hi8(1757) |
608 052e AC01 movw r20,r24 |
609 0530 429F mul r20,r18 |
610 0532 C001 movw r24,r0 |
611 0534 439F mul r20,r19 |
612 0536 900D add r25,r0 |
613 0538 529F mul r21,r18 |
614 053a 900D add r25,r0 |
615 053c 1124 clr r1 |
616 053e 2091 0000 lds r18,ServoFrameTime.2395 |
617 0542 3091 0000 lds r19,(ServoFrameTime.2395)+1 |
618 0546 821B sub r24,r18 |
619 0548 930B sbc r25,r19 |
620 054a 9093 0000 sts (RemainingPulse.2394)+1,r25 |
621 054e 8093 0000 sts RemainingPulse.2394,r24 |
622 0552 00C0 rjmp .L58 |
623 .L46: |
624 0554 8091 0000 lds r24,PulseOutput.2393 |
625 0558 8823 tst r24 |
626 055a 01F0 breq .+2 |
627 055c 00C0 rjmp .L47 |
628 055e 8091 B000 lds r24,176 |
629 0562 86FF sbrs r24,6 |
630 0564 00C0 rjmp .L56 |
631 0566 8091 B000 lds r24,176 |
632 056a 8F7B andi r24,lo8(-65) |
633 056c 8093 B000 sts 176,r24 |
634 0570 E091 0000 lds r30,ServoIndex.2396 |
635 0574 EE23 tst r30 |
636 0576 01F4 brne .L57 |
637 0578 8091 0000 lds r24,EE_Parameter+53 |
638 057c 90E0 ldi r25,lo8(0) |
639 057e 2DED ldi r18,lo8(1757) |
640 0580 36E0 ldi r19,hi8(1757) |
641 0582 AC01 movw r20,r24 |
642 0584 429F mul r20,r18 |
643 0586 C001 movw r24,r0 |
644 0588 439F mul r20,r19 |
645 058a 900D add r25,r0 |
646 058c 529F mul r21,r18 |
647 058e 900D add r25,r0 |
648 0590 1124 clr r1 |
649 0592 2091 0000 lds r18,ServoFrameTime.2395 |
650 0596 3091 0000 lds r19,(ServoFrameTime.2395)+1 |
651 059a 821B sub r24,r18 |
652 059c 930B sbc r25,r19 |
653 059e 9093 0000 sts (RemainingPulse.2394)+1,r25 |
654 05a2 8093 0000 sts RemainingPulse.2394,r24 |
655 05a6 1092 0000 sts (ServoFrameTime.2395)+1,__zero_reg__ |
656 05aa 1092 0000 sts ServoFrameTime.2395,__zero_reg__ |
657 05ae 469A sbi 40-32,6 |
658 05b0 00C0 rjmp .L58 |
659 .L57: |
660 05b2 49EA ldi r20,lo8(937) |
661 05b4 53E0 ldi r21,hi8(937) |
662 05b6 5093 0000 sts (RemainingPulse.2394)+1,r21 |
663 05ba 4093 0000 sts RemainingPulse.2394,r20 |
664 05be E330 cpi r30,lo8(3) |
665 05c0 01F4 brne .+2 |
666 05c2 00C0 rjmp .L62 |
667 05c4 E430 cpi r30,lo8(4) |
668 05c6 00F4 brsh .L65 |
669 05c8 E130 cpi r30,lo8(1) |
670 05ca 01F0 breq .L60 |
671 05cc E230 cpi r30,lo8(2) |
672 05ce 01F0 breq .+2 |
673 05d0 00C0 rjmp .L59 |
674 05d2 00C0 rjmp .L104 |
675 .L65: |
676 05d4 E430 cpi r30,lo8(4) |
677 05d6 01F4 brne .+2 |
678 05d8 00C0 rjmp .L63 |
679 05da E530 cpi r30,lo8(5) |
680 05dc 01F0 breq .+2 |
681 05de 00C0 rjmp .L59 |
682 05e0 00C0 rjmp .L105 |
683 .L60: |
684 05e2 8091 0000 lds r24,Parameter_ServoNickControl |
685 05e6 90E0 ldi r25,lo8(0) |
686 05e8 880F lsl r24 |
687 05ea 991F rol r25 |
688 05ec 880F lsl r24 |
689 05ee 991F rol r25 |
690 05f0 4091 0000 lds r20,ServoNickOffset.2397 |
691 05f4 5091 0000 lds r21,(ServoNickOffset.2397)+1 |
692 05f8 9A01 movw r18,r20 |
693 05fa 220F lsl r18 |
694 05fc 331F rol r19 |
695 05fe 240F add r18,r20 |
696 0600 351F adc r19,r21 |
697 0602 820F add r24,r18 |
698 0604 931F adc r25,r19 |
699 0606 64E0 ldi r22,lo8(4) |
700 0608 70E0 ldi r23,hi8(4) |
701 060a 0E94 0000 call __divmodhi4 |
702 060e 7093 0000 sts (ServoNickOffset.2397)+1,r23 |
703 0612 6093 0000 sts ServoNickOffset.2397,r22 |
704 0616 7093 0000 sts (ServoNickValue)+1,r23 |
705 061a 6093 0000 sts ServoNickValue,r22 |
706 061e 8091 0000 lds r24,EE_Parameter+98 |
707 0622 2091 0000 lds r18,IntegralNick |
708 0626 3091 0000 lds r19,(IntegralNick)+1 |
709 062a 4091 0000 lds r20,(IntegralNick)+2 |
710 062e 5091 0000 lds r21,(IntegralNick)+3 |
711 0632 80FF sbrs r24,0 |
712 0634 00C0 rjmp .L66 |
713 0636 C090 0000 lds r12,ServoNickValue |
714 063a D090 0000 lds r13,(ServoNickValue)+1 |
715 063e E090 0000 lds r14,EE_Parameter+46 |
716 0642 FF24 clr r15 |
717 0644 00E0 ldi r16,lo8(0) |
718 0646 10E0 ldi r17,hi8(0) |
719 0648 CA01 movw r24,r20 |
720 064a B901 movw r22,r18 |
721 064c 20E8 ldi r18,lo8(128) |
722 064e 30E0 ldi r19,hi8(128) |
723 0650 40E0 ldi r20,hlo8(128) |
724 0652 50E0 ldi r21,hhi8(128) |
725 0654 0E94 0000 call __divmodsi4 |
726 0658 C801 movw r24,r16 |
727 065a B701 movw r22,r14 |
728 065c 0E94 0000 call __mulsi3 |
729 0660 B2E0 ldi r27,2 |
730 0662 660F 1: lsl r22 |
731 0664 771F rol r23 |
732 0666 881F rol r24 |
733 0668 991F rol r25 |
734 066a BA95 dec r27 |
735 066c 01F4 brne 1b |
736 066e 20E0 ldi r18,lo8(256) |
737 0670 31E0 ldi r19,hi8(256) |
738 0672 40E0 ldi r20,hlo8(256) |
739 0674 50E0 ldi r21,hhi8(256) |
740 0676 0E94 0000 call __divmodsi4 |
741 067a C20E add r12,r18 |
742 067c D31E adc r13,r19 |
743 067e 00C0 rjmp .L93 |
744 .L66: |
745 0680 C090 0000 lds r12,ServoNickValue |
746 0684 D090 0000 lds r13,(ServoNickValue)+1 |
747 0688 E090 0000 lds r14,EE_Parameter+46 |
748 068c FF24 clr r15 |
749 068e 00E0 ldi r16,lo8(0) |
750 0690 10E0 ldi r17,hi8(0) |
751 0692 CA01 movw r24,r20 |
752 0694 B901 movw r22,r18 |
753 0696 20E8 ldi r18,lo8(128) |
754 0698 30E0 ldi r19,hi8(128) |
755 069a 40E0 ldi r20,hlo8(128) |
756 069c 50E0 ldi r21,hhi8(128) |
757 069e 0E94 0000 call __divmodsi4 |
758 06a2 C801 movw r24,r16 |
759 06a4 B701 movw r22,r14 |
760 06a6 0E94 0000 call __mulsi3 |
761 06aa A2E0 ldi r26,2 |
762 06ac 660F 1: lsl r22 |
763 06ae 771F rol r23 |
764 06b0 881F rol r24 |
765 06b2 991F rol r25 |
766 06b4 AA95 dec r26 |
767 06b6 01F4 brne 1b |
768 06b8 20E0 ldi r18,lo8(256) |
769 06ba 31E0 ldi r19,hi8(256) |
770 06bc 40E0 ldi r20,hlo8(256) |
771 06be 50E0 ldi r21,hhi8(256) |
772 06c0 0E94 0000 call __divmodsi4 |
773 06c4 C21A sub r12,r18 |
774 06c6 D30A sbc r13,r19 |
775 .L93: |
776 06c8 D092 0000 sts (ServoNickValue)+1,r13 |
777 06cc C092 0000 sts ServoNickValue,r12 |
778 06d0 2091 0000 lds r18,ServoNickValue |
779 06d4 3091 0000 lds r19,(ServoNickValue)+1 |
780 06d8 8091 0000 lds r24,EE_Parameter+47 |
781 06dc 90E0 ldi r25,lo8(0) |
782 06de 880F lsl r24 |
783 06e0 991F rol r25 |
784 06e2 880F lsl r24 |
785 06e4 991F rol r25 |
786 06e6 2817 cp r18,r24 |
787 06e8 3907 cpc r19,r25 |
788 06ea 04F0 brlt .L94 |
789 .L68: |
790 06ec 2091 0000 lds r18,ServoNickValue |
791 06f0 3091 0000 lds r19,(ServoNickValue)+1 |
792 06f4 8091 0000 lds r24,EE_Parameter+48 |
793 06f8 90E0 ldi r25,lo8(0) |
794 06fa 880F lsl r24 |
795 06fc 991F rol r25 |
796 06fe 880F lsl r24 |
797 0700 991F rol r25 |
798 0702 8217 cp r24,r18 |
799 0704 9307 cpc r25,r19 |
800 0706 04F4 brge .L69 |
801 .L94: |
802 0708 9093 0000 sts (ServoNickValue)+1,r25 |
803 070c 8093 0000 sts ServoNickValue,r24 |
804 .L69: |
805 0710 8091 0000 lds r24,ServoNickValue |
806 0714 9091 0000 lds r25,(ServoNickValue)+1 |
807 0718 8755 subi r24,lo8(-(425)) |
808 071a 9E4F sbci r25,hi8(-(425)) |
809 071c 9093 0000 sts (RemainingPulse.2394)+1,r25 |
810 0720 8093 0000 sts RemainingPulse.2394,r24 |
811 0724 8091 0000 lds r24,ServoNickValue |
812 0728 9091 0000 lds r25,(ServoNickValue)+1 |
813 072c 64E0 ldi r22,lo8(4) |
814 072e 70E0 ldi r23,hi8(4) |
815 0730 0E94 0000 call __divmodhi4 |
816 0734 7093 0000 sts (ServoNickValue)+1,r23 |
817 0738 6093 0000 sts ServoNickValue,r22 |
818 073c 00C0 rjmp .L70 |
819 .L104: |
820 073e 8091 0000 lds r24,Parameter_ServoRollControl |
821 0742 90E0 ldi r25,lo8(0) |
822 0744 880F lsl r24 |
823 0746 991F rol r25 |
824 0748 880F lsl r24 |
825 074a 991F rol r25 |
826 074c 4091 0000 lds r20,ServoRollOffset.2398 |
827 0750 5091 0000 lds r21,(ServoRollOffset.2398)+1 |
828 0754 9A01 movw r18,r20 |
829 0756 220F lsl r18 |
830 0758 331F rol r19 |
831 075a 240F add r18,r20 |
832 075c 351F adc r19,r21 |
833 075e 820F add r24,r18 |
834 0760 931F adc r25,r19 |
835 0762 64E0 ldi r22,lo8(4) |
836 0764 70E0 ldi r23,hi8(4) |
837 0766 0E94 0000 call __divmodhi4 |
838 076a 7093 0000 sts (ServoRollOffset.2398)+1,r23 |
839 076e 6093 0000 sts ServoRollOffset.2398,r22 |
840 0772 7093 0000 sts (ServoRollValue)+1,r23 |
841 0776 6093 0000 sts ServoRollValue,r22 |
842 077a 8091 0000 lds r24,EE_Parameter+98 |
843 077e 2091 0000 lds r18,IntegralRoll |
844 0782 3091 0000 lds r19,(IntegralRoll)+1 |
845 0786 4091 0000 lds r20,(IntegralRoll)+2 |
846 078a 5091 0000 lds r21,(IntegralRoll)+3 |
847 078e 81FF sbrs r24,1 |
848 0790 00C0 rjmp .L71 |
849 0792 C090 0000 lds r12,ServoRollValue |
850 0796 D090 0000 lds r13,(ServoRollValue)+1 |
851 079a E090 0000 lds r14,EE_Parameter+50 |
852 079e FF24 clr r15 |
853 07a0 00E0 ldi r16,lo8(0) |
854 07a2 10E0 ldi r17,hi8(0) |
855 07a4 CA01 movw r24,r20 |
856 07a6 B901 movw r22,r18 |
857 07a8 20E8 ldi r18,lo8(128) |
858 07aa 30E0 ldi r19,hi8(128) |
859 07ac 40E0 ldi r20,hlo8(128) |
860 07ae 50E0 ldi r21,hhi8(128) |
861 07b0 0E94 0000 call __divmodsi4 |
862 07b4 C801 movw r24,r16 |
863 07b6 B701 movw r22,r14 |
864 07b8 0E94 0000 call __mulsi3 |
865 07bc 22E0 ldi r18,2 |
866 07be 660F 1: lsl r22 |
867 07c0 771F rol r23 |
868 07c2 881F rol r24 |
869 07c4 991F rol r25 |
870 07c6 2A95 dec r18 |
871 07c8 01F4 brne 1b |
872 07ca 20E0 ldi r18,lo8(256) |
873 07cc 31E0 ldi r19,hi8(256) |
874 07ce 40E0 ldi r20,hlo8(256) |
875 07d0 50E0 ldi r21,hhi8(256) |
876 07d2 0E94 0000 call __divmodsi4 |
877 07d6 C20E add r12,r18 |
878 07d8 D31E adc r13,r19 |
879 07da 00C0 rjmp .L95 |
880 .L71: |
881 07dc C090 0000 lds r12,ServoRollValue |
882 07e0 D090 0000 lds r13,(ServoRollValue)+1 |
883 07e4 E090 0000 lds r14,EE_Parameter+50 |
884 07e8 FF24 clr r15 |
885 07ea 00E0 ldi r16,lo8(0) |
886 07ec 10E0 ldi r17,hi8(0) |
887 07ee CA01 movw r24,r20 |
888 07f0 B901 movw r22,r18 |
889 07f2 20E8 ldi r18,lo8(128) |
890 07f4 30E0 ldi r19,hi8(128) |
891 07f6 40E0 ldi r20,hlo8(128) |
892 07f8 50E0 ldi r21,hhi8(128) |
893 07fa 0E94 0000 call __divmodsi4 |
894 07fe C801 movw r24,r16 |
895 0800 B701 movw r22,r14 |
896 0802 0E94 0000 call __mulsi3 |
897 0806 02E0 ldi r16,2 |
898 0808 660F 1: lsl r22 |
899 080a 771F rol r23 |
900 080c 881F rol r24 |
901 080e 991F rol r25 |
902 0810 0A95 dec r16 |
903 0812 01F4 brne 1b |
904 0814 20E0 ldi r18,lo8(256) |
905 0816 31E0 ldi r19,hi8(256) |
906 0818 40E0 ldi r20,hlo8(256) |
907 081a 50E0 ldi r21,hhi8(256) |
908 081c 0E94 0000 call __divmodsi4 |
909 0820 C21A sub r12,r18 |
910 0822 D30A sbc r13,r19 |
911 .L95: |
912 0824 D092 0000 sts (ServoRollValue)+1,r13 |
913 0828 C092 0000 sts ServoRollValue,r12 |
914 082c 2091 0000 lds r18,ServoRollValue |
915 0830 3091 0000 lds r19,(ServoRollValue)+1 |
916 0834 8091 0000 lds r24,EE_Parameter+51 |
917 0838 90E0 ldi r25,lo8(0) |
918 083a 880F lsl r24 |
919 083c 991F rol r25 |
920 083e 880F lsl r24 |
921 0840 991F rol r25 |
922 0842 2817 cp r18,r24 |
923 0844 3907 cpc r19,r25 |
924 0846 04F0 brlt .L96 |
925 .L73: |
926 0848 2091 0000 lds r18,ServoRollValue |
927 084c 3091 0000 lds r19,(ServoRollValue)+1 |
928 0850 8091 0000 lds r24,EE_Parameter+52 |
929 0854 90E0 ldi r25,lo8(0) |
930 0856 880F lsl r24 |
931 0858 991F rol r25 |
932 085a 880F lsl r24 |
933 085c 991F rol r25 |
934 085e 8217 cp r24,r18 |
935 0860 9307 cpc r25,r19 |
936 0862 04F4 brge .L74 |
937 .L96: |
938 0864 9093 0000 sts (ServoRollValue)+1,r25 |
939 0868 8093 0000 sts ServoRollValue,r24 |
940 .L74: |
941 086c 8091 0000 lds r24,ServoRollValue |
942 0870 9091 0000 lds r25,(ServoRollValue)+1 |
943 0874 8755 subi r24,lo8(-(425)) |
944 0876 9E4F sbci r25,hi8(-(425)) |
945 0878 9093 0000 sts (RemainingPulse.2394)+1,r25 |
946 087c 8093 0000 sts RemainingPulse.2394,r24 |
947 0880 8091 0000 lds r24,ServoRollValue |
948 0884 9091 0000 lds r25,(ServoRollValue)+1 |
949 0888 64E0 ldi r22,lo8(4) |
950 088a 70E0 ldi r23,hi8(4) |
951 088c 0E94 0000 call __divmodhi4 |
952 0890 7093 0000 sts (ServoRollValue)+1,r23 |
953 0894 6093 0000 sts ServoRollValue,r22 |
954 0898 00C0 rjmp .L70 |
955 .L62: |
956 089a 8091 0000 lds r24,EE_Parameter+7 |
957 089e E82F mov r30,r24 |
958 08a0 F0E0 ldi r31,lo8(0) |
959 08a2 EE0F lsl r30 |
960 08a4 FF1F rol r31 |
961 08a6 E050 subi r30,lo8(-(PPM_in)) |
962 08a8 F040 sbci r31,hi8(-(PPM_in)) |
963 08aa 8081 ld r24,Z |
964 08ac 9181 ldd r25,Z+1 |
965 08ae 805E subi r24,lo8(-32) |
966 08b0 9F4F sbci r25,hi8(-32) |
967 08b2 04F0 brlt .L101 |
968 .L75: |
969 08b4 8081 ld r24,Z |
970 08b6 9181 ldd r25,Z+1 |
971 08b8 8197 sbiw r24,33 |
972 08ba 04F0 brlt .L76 |
973 08bc 8CED ldi r24,lo8(1500) |
974 08be 95E0 ldi r25,hi8(1500) |
975 08c0 00C0 rjmp .L97 |
976 .L76: |
977 08c2 8091 0000 lds r24,CameraShutterCycle |
978 08c6 9091 0000 lds r25,(CameraShutterCycle)+1 |
979 08ca C297 sbiw r24,50 |
980 08cc 00F0 brlo .L98 |
981 .L77: |
982 08ce 2091 0000 lds r18,CameraShutterCycleCounter |
983 08d2 3091 0000 lds r19,(CameraShutterCycleCounter)+1 |
984 08d6 8091 0000 lds r24,CameraShutterCycle |
985 08da 9091 0000 lds r25,(CameraShutterCycle)+1 |
986 08de 2817 cp r18,r24 |
987 08e0 3907 cpc r19,r25 |
988 08e2 01F4 brne .L78 |
989 08e4 1092 0000 sts (CameraShutterCycleCounter)+1,__zero_reg__ |
990 08e8 1092 0000 sts CameraShutterCycleCounter,__zero_reg__ |
991 .L98: |
992 08ec 5093 0000 sts (RemainingPulse.2394)+1,r21 |
993 08f0 4093 0000 sts RemainingPulse.2394,r20 |
994 08f4 00C0 rjmp .L70 |
995 .L78: |
996 08f6 8091 0000 lds r24,CameraShutterCycleCounter |
997 08fa 9091 0000 lds r25,(CameraShutterCycleCounter)+1 |
998 08fe 0196 adiw r24,1 |
999 0900 9093 0000 sts (CameraShutterCycleCounter)+1,r25 |
1000 0904 8093 0000 sts CameraShutterCycleCounter,r24 |
1001 0908 2091 0000 lds r18,CameraShutterCycleCounter |
1002 090c 3091 0000 lds r19,(CameraShutterCycleCounter)+1 |
1003 0910 8091 0000 lds r24,CameraShutterCycleOnCount |
1004 0914 9091 0000 lds r25,(CameraShutterCycleOnCount)+1 |
1005 0918 2817 cp r18,r24 |
1006 091a 3907 cpc r19,r25 |
1007 091c 01F4 brne .L70 |
1008 .L101: |
1009 091e 87E7 ldi r24,lo8(375) |
1010 0920 91E0 ldi r25,hi8(375) |
1011 0922 00C0 rjmp .L97 |
1012 .L63: |
1013 0924 8091 0000 lds r24,Parameter_Servo4 |
1014 0928 00C0 rjmp .L102 |
1015 .L105: |
1016 092a 8091 0000 lds r24,Parameter_Servo5 |
1017 .L102: |
1018 092e 90E0 ldi r25,lo8(0) |
1019 0930 880F lsl r24 |
1020 0932 991F rol r25 |
1021 0934 880F lsl r24 |
1022 0936 991F rol r25 |
1023 0938 8755 subi r24,lo8(-(425)) |
1024 093a 9E4F sbci r25,hi8(-(425)) |
1025 093c 00C0 rjmp .L97 |
1026 .L59: |
1027 093e F0E0 ldi r31,lo8(0) |
1028 0940 EE0F lsl r30 |
1029 0942 FF1F rol r31 |
1030 0944 E050 subi r30,lo8(-(PPM_in)) |
1031 0946 F040 sbci r31,hi8(-(PPM_in)) |
1032 0948 8081 ld r24,Z |
1033 094a 9181 ldd r25,Z+1 |
1034 094c 880F lsl r24 |
1035 094e 991F rol r25 |
1036 0950 8755 subi r24,lo8(-(937)) |
1037 0952 9C4F sbci r25,hi8(-(937)) |
1038 .L97: |
1039 0954 9093 0000 sts (RemainingPulse.2394)+1,r25 |
1040 0958 8093 0000 sts RemainingPulse.2394,r24 |
1041 .L70: |
1042 095c 8091 0000 lds r24,RemainingPulse.2394 |
1043 0960 9091 0000 lds r25,(RemainingPulse.2394)+1 |
1044 0964 45E0 ldi r20,hi8(1501) |
1045 0966 8D3D cpi r24,lo8(1501) |
1046 0968 9407 cpc r25,r20 |
1047 096a 00F0 brlo .L79 |
1048 096c 8CED ldi r24,lo8(1500) |
1049 096e 95E0 ldi r25,hi8(1500) |
1050 0970 00C0 rjmp .L99 |
1051 .L79: |
1052 0972 8757 subi r24,lo8(375) |
1053 0974 9140 sbci r25,hi8(375) |
1054 0976 00F4 brsh .L80 |
1055 0978 87E7 ldi r24,lo8(375) |
1056 097a 91E0 ldi r25,hi8(375) |
1057 .L99: |
1058 097c 9093 0000 sts (RemainingPulse.2394)+1,r25 |
1059 0980 8093 0000 sts RemainingPulse.2394,r24 |
1060 .L80: |
1061 0984 2091 0000 lds r18,RemainingPulse.2394 |
1062 0988 3091 0000 lds r19,(RemainingPulse.2394)+1 |
1063 098c 2C5B subi r18,lo8(-(-188)) |
1064 098e 3040 sbci r19,hi8(-(-188)) |
1065 0990 3093 0000 sts (RemainingPulse.2394)+1,r19 |
1066 0994 2093 0000 sts RemainingPulse.2394,r18 |
1067 0998 8091 0000 lds r24,ServoFrameTime.2395 |
1068 099c 9091 0000 lds r25,(ServoFrameTime.2395)+1 |
1069 09a0 820F add r24,r18 |
1070 09a2 931F adc r25,r19 |
1071 .L103: |
1072 09a4 9093 0000 sts (ServoFrameTime.2395)+1,r25 |
1073 09a8 8093 0000 sts ServoFrameTime.2395,r24 |
1074 09ac 00C0 rjmp .L58 |
1075 .L56: |
1076 09ae 8091 B000 lds r24,176 |
1077 09b2 8064 ori r24,lo8(64) |
1078 09b4 8093 B000 sts 176,r24 |
1079 09b8 8CEB ldi r24,lo8(188) |
1080 09ba 90E0 ldi r25,hi8(188) |
1081 09bc 9093 0000 sts (RemainingPulse.2394)+1,r25 |
1082 09c0 8093 0000 sts RemainingPulse.2394,r24 |
1083 09c4 8091 0000 lds r24,ServoFrameTime.2395 |
1084 09c8 9091 0000 lds r25,(ServoFrameTime.2395)+1 |
1085 09cc 8454 subi r24,lo8(-(188)) |
1086 09ce 9F4F sbci r25,hi8(-(188)) |
1087 09d0 9093 0000 sts (ServoFrameTime.2395)+1,r25 |
1088 09d4 8093 0000 sts ServoFrameTime.2395,r24 |
1089 09d8 8091 0000 lds r24,ServoActive |
1090 09dc 8823 tst r24 |
1091 09de 01F0 breq .L81 |
1092 09e0 8091 0000 lds r24,SenderOkay |
1093 09e4 853B cpi r24,lo8(-75) |
1094 09e6 00F4 brsh .L82 |
1095 .L81: |
1096 09e8 8091 0000 lds r24,ServoActive |
1097 09ec 8230 cpi r24,lo8(2) |
1098 09ee 01F4 brne .L83 |
1099 .L82: |
1100 09f0 4698 cbi 40-32,6 |
1101 09f2 00C0 rjmp .L84 |
1102 .L83: |
1103 09f4 469A sbi 40-32,6 |
1104 .L84: |
1105 09f6 8091 0000 lds r24,ServoIndex.2396 |
1106 09fa 8F5F subi r24,lo8(-(1)) |
1107 09fc 8093 0000 sts ServoIndex.2396,r24 |
1108 0a00 9091 0000 lds r25,EE_Parameter+53 |
1109 0a04 9817 cp r25,r24 |
1110 0a06 00F4 brsh .L58 |
1111 0a08 1092 0000 sts ServoIndex.2396,__zero_reg__ |
1112 .L58: |
1113 0a0c 81E0 ldi r24,lo8(1) |
1114 0a0e 8093 0000 sts PulseOutput.2393,r24 |
1115 .L47: |
1116 0a12 2091 0000 lds r18,RemainingPulse.2394 |
1117 0a16 3091 0000 lds r19,(RemainingPulse.2394)+1 |
1118 0a1a 81E0 ldi r24,hi8(383) |
1119 0a1c 2F37 cpi r18,lo8(383) |
1120 0a1e 3807 cpc r19,r24 |
1121 0a20 00F0 brlo .L85 |
1122 0a22 8FEF ldi r24,lo8(-1) |
1123 0a24 8093 B300 sts 179,r24 |
1124 0a28 2F5F subi r18,lo8(-(-255)) |
1125 0a2a 3040 sbci r19,hi8(-(-255)) |
1126 0a2c 00C0 rjmp .L100 |
1127 .L85: |
1128 0a2e 2F3F cpi r18,255 |
1129 0a30 3105 cpc r19,__zero_reg__ |
1130 0a32 01F0 breq .L87 |
1131 0a34 00F0 brlo .L87 |
1132 0a36 A901 movw r20,r18 |
1133 0a38 4F5F subi r20,lo8(-(-255)) |
1134 0a3a 5040 sbci r21,hi8(-(-255)) |
1135 0a3c 4F37 cpi r20,127 |
1136 0a3e 5105 cpc r21,__zero_reg__ |
1137 0a40 00F4 brsh .L88 |
1138 0a42 80E8 ldi r24,lo8(-128) |
1139 0a44 8093 B300 sts 179,r24 |
1140 0a48 2058 subi r18,lo8(-(-128)) |
1141 0a4a 3040 sbci r19,hi8(-(-128)) |
1142 .L100: |
1143 0a4c 3093 0000 sts (RemainingPulse.2394)+1,r19 |
1144 0a50 2093 0000 sts RemainingPulse.2394,r18 |
1145 0a54 00C0 rjmp .L89 |
1146 .L88: |
1147 0a56 8FEF ldi r24,lo8(-1) |
1148 0a58 8093 B300 sts 179,r24 |
1149 0a5c 5093 0000 sts (RemainingPulse.2394)+1,r21 |
1150 0a60 4093 0000 sts RemainingPulse.2394,r20 |
1151 0a64 00C0 rjmp .L89 |
1152 .L87: |
1153 0a66 2093 B300 sts 179,r18 |
1154 0a6a 1092 0000 sts (RemainingPulse.2394)+1,__zero_reg__ |
1155 0a6e 1092 0000 sts RemainingPulse.2394,__zero_reg__ |
1156 0a72 1092 0000 sts PulseOutput.2393,__zero_reg__ |
1157 .L89: |
1158 /* epilogue start */ |
1159 0a76 FF91 pop r31 |
1160 0a78 EF91 pop r30 |
1161 0a7a BF91 pop r27 |
1162 0a7c AF91 pop r26 |
1163 0a7e 9F91 pop r25 |
1164 0a80 8F91 pop r24 |
1165 0a82 7F91 pop r23 |
1166 0a84 6F91 pop r22 |
1167 0a86 5F91 pop r21 |
1168 0a88 4F91 pop r20 |
1169 0a8a 3F91 pop r19 |
1170 0a8c 2F91 pop r18 |
1171 0a8e 1F91 pop r17 |
1172 0a90 0F91 pop r16 |
1173 0a92 FF90 pop r15 |
1174 0a94 EF90 pop r14 |
1175 0a96 DF90 pop r13 |
1176 0a98 CF90 pop r12 |
1177 0a9a 0F90 pop r0 |
1178 0a9c 0FBE out __SREG__,r0 |
1179 0a9e 0F90 pop r0 |
1180 0aa0 1F90 pop __zero_reg__ |
1181 0aa2 1895 reti |
1183 .global CountMilliseconds |
1184 .global CountMilliseconds |
1185 .section .bss |
1188 CountMilliseconds: |
1189 0000 0000 .skip 2,0 |
1190 .global UpdateMotor |
1191 .global UpdateMotor |
1194 UpdateMotor: |
1195 0002 00 .skip 1,0 |
1196 .global cntKompass |
1197 .global cntKompass |
1200 cntKompass: |
1201 0003 0000 .skip 2,0 |
1202 .global beeptime |
1203 .global beeptime |
1206 beeptime: |
1207 0005 0000 .skip 2,0 |
1208 .global SendSPI |
1209 .global SendSPI |
1212 SendSPI: |
1213 0007 00 .skip 1,0 |
1214 .global ServoActive |
1215 .global ServoActive |
1218 ServoActive: |
1219 0008 00 .skip 1,0 |
1220 .global BeepMuster |
1221 .data |
1224 BeepMuster: |
1225 0000 FFFF .word -1 |
1226 .global ServoNickValue |
1227 .global ServoNickValue |
1228 .section .bss |
1231 ServoNickValue: |
1232 0009 0000 .skip 2,0 |
1233 .global ServoRollValue |
1234 .global ServoRollValue |
1237 ServoRollValue: |
1238 000b 0000 .skip 2,0 |
1239 .lcomm CameraShutterCycle,2 |
1240 .lcomm CameraShutterCycleCounter,2 |
1241 .data |
1244 CameraShutterCycleOnCount: |
1245 0002 1400 .word 20 |
1248 ServoRollOffset.2398: |
1249 0004 FC01 .word 508 |
1252 ServoNickOffset.2397: |
1253 0006 FC01 .word 508 |
1254 .lcomm ServoIndex.2396,1 |
1255 .lcomm ServoFrameTime.2395,2 |
1256 .lcomm RemainingPulse.2394,2 |
1257 .lcomm PulseOutput.2393,1 |
1258 .lcomm compass_active.2240,1 |
1259 .lcomm cnt.2239,1 |
1262 cnt_1ms.2238: |
1263 0008 01 .byte 1 |
1264 .lcomm tim_main,2 |
1265 .global __do_copy_data |
1266 .global __do_clear_bss |
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 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:2 *ABS*:0000003f __SREG__ |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:3 *ABS*:0000003e __SP_H__ |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:4 *ABS*:0000003d __SP_L__ |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:5 *ABS*:00000034 __CCP__ |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:6 *ABS*:00000000 __tmp_reg__ |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:7 *ABS*:00000001 __zero_reg__ |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:11 .text:00000000 __vector_18 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1212 .bss:00000007 SendSPI |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1258 .bss:00000018 cnt.2239 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1188 .bss:00000000 CountMilliseconds |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1262 .data:00000008 cnt_1ms.2238 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1194 .bss:00000002 UpdateMotor |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1257 .bss:00000017 compass_active.2240 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1206 .bss:00000005 beeptime |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1224 .data:00000000 BeepMuster |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1200 .bss:00000003 cntKompass |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:224 .text:00000206 SetDelay |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:239 .text:0000021a CheckDelay |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:255 .text:00000230 Delay_ms |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:281 .text:0000025c Delay_ms_Mess |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:315 .text:0000029c TIMER2_Init |
.bss:0000000d CameraShutterCycle |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:376 .text:0000030a Timer_Init |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1259 .bss:00000019 tim_main |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:403 .text:0000033a __vector_9 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1256 .bss:00000016 PulseOutput.2393 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1252 .data:00000006 ServoNickOffset.2397 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1231 .bss:00000009 ServoNickValue |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1255 .bss:00000014 RemainingPulse.2394 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1254 .bss:00000012 ServoFrameTime.2395 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1240 .bss:00000011 ServoIndex.2396 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1248 .data:00000004 ServoRollOffset.2398 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1237 .bss:0000000b ServoRollValue |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1239 .bss:0000000f CameraShutterCycleCounter |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1244 .data:00000002 CameraShutterCycleOnCount |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT5cFTS.s:1218 .bss:00000008 ServoActive |
|
UNDEFINED SYMBOLS |
__do_copy_data |
__do_clear_bss |
SpektrumTimer |
PlatinenVersion |
NaviDataOkay |
1401,6 → 1275,7 |
Parameter_UserParam8 |
Parameter_ServoNickControl |
IntegralNick |
__divmodsi4 |
__mulsi3 |
Parameter_ServoRollControl |
IntegralRoll |
1408,3 → 1283,5 |
Parameter_Servo4 |
Parameter_Servo5 |
SenderOkay |
__do_copy_data |
__do_clear_bss |