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