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