0,0 → 1,899 |
1 .file "timer2.c" |
2 __SREG__ = 0x3f |
3 __SP_H__ = 0x3e |
4 __SP_L__ = 0x3d |
5 __CCP__ = 0x34 |
6 __tmp_reg__ = 0 |
7 __zero_reg__ = 1 |
8 .text |
9 .global TIMER2_Init |
11 TIMER2_Init: |
12 /* prologue: function */ |
13 /* frame size = 0 */ |
14 0000 9FB7 in r25,__SREG__ |
15 /* #APP */ |
16 ; 78 "timer2.c" 1 |
17 0002 F894 cli |
18 ; 0 "" 2 |
19 /* #NOAPP */ |
20 0004 5798 cbi 42-32,7 |
21 0006 5F98 cbi 43-32,7 |
22 0008 3E9A sbi 39-32,6 |
23 000a 469A sbi 40-32,6 |
24 000c A0EB ldi r26,lo8(176) |
25 000e B0E0 ldi r27,hi8(176) |
26 0010 8C91 ld r24,X |
27 0012 8F70 andi r24,lo8(15) |
28 0014 8C93 st X,r24 |
29 0016 8C91 ld r24,X |
30 0018 8360 ori r24,lo8(3) |
31 001a 8C93 st X,r24 |
32 001c E1EB ldi r30,lo8(177) |
33 001e F0E0 ldi r31,hi8(177) |
34 0020 8081 ld r24,Z |
35 0022 8B73 andi r24,lo8(59) |
36 0024 8083 st Z,r24 |
37 0026 8081 ld r24,Z |
38 0028 8B60 ori r24,lo8(11) |
39 002a 8083 st Z,r24 |
40 002c 1092 B200 sts 178,__zero_reg__ |
41 0030 8FEF ldi r24,lo8(-1) |
42 0032 8093 B300 sts 179,r24 |
43 0036 8C91 ld r24,X |
44 0038 8068 ori r24,lo8(-128) |
45 003a 8C93 st X,r24 |
46 003c E0E7 ldi r30,lo8(112) |
47 003e F0E0 ldi r31,hi8(112) |
48 0040 8081 ld r24,Z |
49 0042 8A7F andi r24,lo8(-6) |
50 0044 8083 st Z,r24 |
51 0046 8081 ld r24,Z |
52 0048 8260 ori r24,lo8(2) |
53 004a 8083 st Z,r24 |
54 004c 9FBF out __SREG__,r25 |
55 /* epilogue start */ |
56 004e 0895 ret |
58 .global Servo_On |
60 Servo_On: |
61 /* prologue: function */ |
62 /* frame size = 0 */ |
63 0050 81E0 ldi r24,lo8(1) |
64 0052 8093 0000 sts ServoActive,r24 |
65 0056 579A sbi 42-32,7 |
66 /* epilogue start */ |
67 0058 0895 ret |
69 .global Servo_Off |
71 Servo_Off: |
72 /* prologue: function */ |
73 /* frame size = 0 */ |
74 005a 1092 0000 sts ServoActive,__zero_reg__ |
75 005e 5798 cbi 42-32,7 |
76 0060 469A sbi 40-32,6 |
77 /* epilogue start */ |
78 0062 0895 ret |
80 .global __vector_9 |
82 __vector_9: |
83 0064 1F92 push __zero_reg__ |
84 0066 0F92 push r0 |
85 0068 0FB6 in r0,__SREG__ |
86 006a 0F92 push r0 |
87 006c 1124 clr __zero_reg__ |
88 006e CF92 push r12 |
89 0070 DF92 push r13 |
90 0072 EF92 push r14 |
91 0074 FF92 push r15 |
92 0076 0F93 push r16 |
93 0078 1F93 push r17 |
94 007a 2F93 push r18 |
95 007c 3F93 push r19 |
96 007e 4F93 push r20 |
97 0080 5F93 push r21 |
98 0082 6F93 push r22 |
99 0084 7F93 push r23 |
100 0086 8F93 push r24 |
101 0088 9F93 push r25 |
102 008a AF93 push r26 |
103 008c BF93 push r27 |
104 008e EF93 push r30 |
105 0090 FF93 push r31 |
106 /* prologue: Signal */ |
107 /* frame size = 0 */ |
108 0092 8091 0000 lds r24,BoardRelease |
109 0096 8431 cpi r24,lo8(20) |
110 0098 00F4 brsh .L8 |
111 009a 8091 0000 lds r24,PulseOutput.1543 |
112 009e 8823 tst r24 |
113 00a0 01F4 brne .+2 |
114 00a2 00C0 rjmp .L51 |
115 .L59: |
116 00a4 4091 0000 lds r20,RemainingPulse.1544 |
117 00a8 5091 0000 lds r21,(RemainingPulse.1544)+1 |
118 00ac 81E0 ldi r24,hi8(383) |
119 00ae 4F37 cpi r20,lo8(383) |
120 00b0 5807 cpc r21,r24 |
121 00b2 00F0 brlo .+2 |
122 00b4 00C0 rjmp .L61 |
123 .L43: |
124 00b6 4F3F cpi r20,255 |
125 00b8 5105 cpc r21,__zero_reg__ |
126 00ba 01F0 breq .+4 |
127 00bc 00F0 brlo .+2 |
128 00be 00C0 rjmp .L62 |
129 00c0 4093 B300 sts 179,r20 |
130 00c4 1092 0000 sts (RemainingPulse.1544)+1,__zero_reg__ |
131 00c8 1092 0000 sts RemainingPulse.1544,__zero_reg__ |
132 00cc 1092 0000 sts PulseOutput.1543,__zero_reg__ |
133 .L47: |
134 /* epilogue start */ |
135 00d0 FF91 pop r31 |
136 00d2 EF91 pop r30 |
137 00d4 BF91 pop r27 |
138 00d6 AF91 pop r26 |
139 00d8 9F91 pop r25 |
140 00da 8F91 pop r24 |
141 00dc 7F91 pop r23 |
142 00de 6F91 pop r22 |
143 00e0 5F91 pop r21 |
144 00e2 4F91 pop r20 |
145 00e4 3F91 pop r19 |
146 00e6 2F91 pop r18 |
147 00e8 1F91 pop r17 |
148 00ea 0F91 pop r16 |
149 00ec FF90 pop r15 |
150 00ee EF90 pop r14 |
151 00f0 DF90 pop r13 |
152 00f2 CF90 pop r12 |
153 00f4 0F90 pop r0 |
154 00f6 0FBE out __SREG__,r0 |
155 00f8 0F90 pop r0 |
156 00fa 1F90 pop __zero_reg__ |
157 00fc 1895 reti |
158 .L8: |
159 00fe 8091 0000 lds r24,PulseOutput.1543 |
160 0102 8823 tst r24 |
161 0104 01F4 brne .L59 |
162 0106 8091 B000 lds r24,176 |
163 010a 86FF sbrs r24,6 |
164 010c 00C0 rjmp .L20 |
165 010e 8091 B000 lds r24,176 |
166 0112 8F7B andi r24,lo8(-65) |
167 0114 8093 B000 sts 176,r24 |
168 0118 E091 0000 lds r30,ServoIndex.1546 |
169 011c EE23 tst r30 |
170 011e 01F0 breq .+2 |
171 0120 00C0 rjmp .L21 |
172 0122 8091 0000 lds r24,ParamSet+47 |
173 0126 90E0 ldi r25,lo8(0) |
174 0128 2DED ldi r18,lo8(1757) |
175 012a 36E0 ldi r19,hi8(1757) |
176 012c A901 movw r20,r18 |
177 012e 849F mul r24,r20 |
178 0130 9001 movw r18,r0 |
179 0132 859F mul r24,r21 |
180 0134 300D add r19,r0 |
181 0136 949F mul r25,r20 |
182 0138 300D add r19,r0 |
183 013a 1124 clr r1 |
184 013c 8091 0000 lds r24,ServoFrameTime.1545 |
185 0140 9091 0000 lds r25,(ServoFrameTime.1545)+1 |
186 0144 281B sub r18,r24 |
187 0146 390B sbc r19,r25 |
188 0148 3093 0000 sts (RemainingPulse.1544)+1,r19 |
189 014c 2093 0000 sts RemainingPulse.1544,r18 |
190 0150 1092 0000 sts (ServoFrameTime.1545)+1,__zero_reg__ |
191 0154 1092 0000 sts ServoFrameTime.1545,__zero_reg__ |
192 0158 469A sbi 40-32,6 |
193 015a A901 movw r20,r18 |
194 .L22: |
195 015c 81E0 ldi r24,lo8(1) |
196 015e 8093 0000 sts PulseOutput.1543,r24 |
197 0162 81E0 ldi r24,hi8(383) |
198 0164 4F37 cpi r20,lo8(383) |
199 0166 5807 cpc r21,r24 |
200 0168 00F4 brsh .+2 |
201 016a 00C0 rjmp .L43 |
202 .L61: |
203 016c 8FEF ldi r24,lo8(-1) |
204 016e 8093 B300 sts 179,r24 |
205 0172 4F5F subi r20,lo8(-(-255)) |
206 0174 5040 sbci r21,hi8(-(-255)) |
207 0176 5093 0000 sts (RemainingPulse.1544)+1,r21 |
208 017a 4093 0000 sts RemainingPulse.1544,r20 |
209 017e 00C0 rjmp .L47 |
210 .L62: |
211 0180 9A01 movw r18,r20 |
212 0182 2F5F subi r18,lo8(-(-255)) |
213 0184 3040 sbci r19,hi8(-(-255)) |
214 0186 2F37 cpi r18,127 |
215 0188 3105 cpc r19,__zero_reg__ |
216 018a 00F0 brlo .+2 |
217 018c 00C0 rjmp .L46 |
218 018e 80E8 ldi r24,lo8(-128) |
219 0190 8093 B300 sts 179,r24 |
220 0194 4058 subi r20,lo8(-(-128)) |
221 0196 5040 sbci r21,hi8(-(-128)) |
222 0198 5093 0000 sts (RemainingPulse.1544)+1,r21 |
223 019c 4093 0000 sts RemainingPulse.1544,r20 |
224 01a0 00C0 rjmp .L47 |
225 .L51: |
226 01a2 8091 B000 lds r24,176 |
227 01a6 86FF sbrs r24,6 |
228 01a8 00C0 rjmp .L10 |
229 01aa 8091 B000 lds r24,176 |
230 01ae 8F7B andi r24,lo8(-65) |
231 01b0 8093 B000 sts 176,r24 |
232 01b4 8091 0000 lds r24,FCParam+21 |
233 01b8 482F mov r20,r24 |
234 01ba 50E0 ldi r21,lo8(0) |
235 01bc 440F lsl r20 |
236 01be 551F rol r21 |
237 01c0 440F lsl r20 |
238 01c2 551F rol r21 |
239 01c4 2091 0000 lds r18,ServoNickOffset.1547 |
240 01c8 3091 0000 lds r19,(ServoNickOffset.1547)+1 |
241 01cc C901 movw r24,r18 |
242 01ce 880F lsl r24 |
243 01d0 991F rol r25 |
244 01d2 820F add r24,r18 |
245 01d4 931F adc r25,r19 |
246 01d6 480F add r20,r24 |
247 01d8 591F adc r21,r25 |
248 01da 57FD sbrc r21,7 |
249 01dc 00C0 rjmp .L63 |
250 .L11: |
251 01de CA01 movw r24,r20 |
252 01e0 9595 asr r25 |
253 01e2 8795 ror r24 |
254 01e4 9595 asr r25 |
255 01e6 8795 ror r24 |
256 01e8 9093 0000 sts (ServoNickOffset.1547)+1,r25 |
257 01ec 8093 0000 sts ServoNickOffset.1547,r24 |
258 01f0 9093 0000 sts (ServoNickValue)+1,r25 |
259 01f4 8093 0000 sts ServoNickValue,r24 |
260 01f8 8091 0000 lds r24,ParamSet+87 |
261 01fc 80FF sbrs r24,0 |
262 01fe 00C0 rjmp .L12 |
263 0200 C090 0000 lds r12,ServoNickValue |
264 0204 D090 0000 lds r13,(ServoNickValue)+1 |
265 0208 E090 0000 lds r14,ParamSet+40 |
266 020c FF24 clr r15 |
267 020e 00E0 ldi r16,lo8(0) |
268 0210 10E0 ldi r17,hi8(0) |
269 0212 6091 0000 lds r22,IntegralGyroNick |
270 0216 7091 0000 lds r23,(IntegralGyroNick)+1 |
271 021a 8091 0000 lds r24,(IntegralGyroNick)+2 |
272 021e 9091 0000 lds r25,(IntegralGyroNick)+3 |
273 0222 20E8 ldi r18,lo8(128) |
274 0224 30E0 ldi r19,hi8(128) |
275 0226 40E0 ldi r20,hlo8(128) |
276 0228 50E0 ldi r21,hhi8(128) |
277 022a 0E94 0000 call __divmodsi4 |
278 022e C801 movw r24,r16 |
279 0230 B701 movw r22,r14 |
280 0232 0E94 0000 call __mulsi3 |
281 0236 660F lsl r22 |
282 0238 771F rol r23 |
283 023a 881F rol r24 |
284 023c 991F rol r25 |
285 023e 660F lsl r22 |
286 0240 771F rol r23 |
287 0242 881F rol r24 |
288 0244 991F rol r25 |
289 0246 20E0 ldi r18,lo8(256) |
290 0248 31E0 ldi r19,hi8(256) |
291 024a 40E0 ldi r20,hlo8(256) |
292 024c 50E0 ldi r21,hhi8(256) |
293 024e 0E94 0000 call __divmodsi4 |
294 0252 C20E add r12,r18 |
295 0254 D31E adc r13,r19 |
296 0256 D092 0000 sts (ServoNickValue)+1,r13 |
297 025a C092 0000 sts ServoNickValue,r12 |
298 .L13: |
299 025e 8091 0000 lds r24,ParamSet+41 |
300 0262 282F mov r18,r24 |
301 0264 30E0 ldi r19,lo8(0) |
302 0266 220F lsl r18 |
303 0268 331F rol r19 |
304 026a 220F lsl r18 |
305 026c 331F rol r19 |
306 026e 8091 0000 lds r24,ServoNickValue |
307 0272 9091 0000 lds r25,(ServoNickValue)+1 |
308 0276 8217 cp r24,r18 |
309 0278 9307 cpc r25,r19 |
310 027a 04F4 brge .+2 |
311 027c 00C0 rjmp .L55 |
312 027e 8091 0000 lds r24,ParamSet+42 |
313 0282 282F mov r18,r24 |
314 0284 30E0 ldi r19,lo8(0) |
315 0286 220F lsl r18 |
316 0288 331F rol r19 |
317 028a 220F lsl r18 |
318 028c 331F rol r19 |
319 028e 8091 0000 lds r24,ServoNickValue |
320 0292 9091 0000 lds r25,(ServoNickValue)+1 |
321 0296 2817 cp r18,r24 |
322 0298 3907 cpc r19,r25 |
323 029a 04F4 brge .+2 |
324 029c 00C0 rjmp .L55 |
325 .L15: |
326 029e 2091 0000 lds r18,ServoNickValue |
327 02a2 3091 0000 lds r19,(ServoNickValue)+1 |
328 02a6 2755 subi r18,lo8(-(425)) |
329 02a8 3E4F sbci r19,hi8(-(425)) |
330 02aa 3093 0000 sts (RemainingPulse.1544)+1,r19 |
331 02ae 2093 0000 sts RemainingPulse.1544,r18 |
332 02b2 8091 0000 lds r24,ServoNickValue |
333 02b6 9091 0000 lds r25,(ServoNickValue)+1 |
334 02ba 97FD sbrc r25,7 |
335 02bc 00C0 rjmp .L64 |
336 .L16: |
337 02be 9595 asr r25 |
338 02c0 8795 ror r24 |
339 02c2 9595 asr r25 |
340 02c4 8795 ror r24 |
341 02c6 9093 0000 sts (ServoNickValue)+1,r25 |
342 02ca 8093 0000 sts ServoNickValue,r24 |
343 02ce 45E0 ldi r20,hi8(1501) |
344 02d0 2D3D cpi r18,lo8(1501) |
345 02d2 3407 cpc r19,r20 |
346 02d4 00F4 brsh .+2 |
347 02d6 00C0 rjmp .L17 |
348 02d8 8CED ldi r24,lo8(1500) |
349 02da 95E0 ldi r25,hi8(1500) |
350 02dc 9093 0000 sts (RemainingPulse.1544)+1,r25 |
351 02e0 8093 0000 sts RemainingPulse.1544,r24 |
352 .L18: |
353 02e4 4091 0000 lds r20,RemainingPulse.1544 |
354 02e8 5091 0000 lds r21,(RemainingPulse.1544)+1 |
355 02ec 5093 0000 sts (ServoFrameTime.1545)+1,r21 |
356 02f0 4093 0000 sts ServoFrameTime.1545,r20 |
357 02f4 00C0 rjmp .L22 |
358 .L46: |
359 02f6 8FEF ldi r24,lo8(-1) |
360 02f8 8093 B300 sts 179,r24 |
361 02fc 3093 0000 sts (RemainingPulse.1544)+1,r19 |
362 0300 2093 0000 sts RemainingPulse.1544,r18 |
363 0304 00C0 rjmp .L47 |
364 .L20: |
365 0306 8091 B000 lds r24,176 |
366 030a 8064 ori r24,lo8(64) |
367 030c 8093 B000 sts 176,r24 |
368 0310 8CEB ldi r24,lo8(188) |
369 0312 90E0 ldi r25,hi8(188) |
370 0314 9093 0000 sts (RemainingPulse.1544)+1,r25 |
371 0318 8093 0000 sts RemainingPulse.1544,r24 |
372 031c 8091 0000 lds r24,ServoFrameTime.1545 |
373 0320 9091 0000 lds r25,(ServoFrameTime.1545)+1 |
374 0324 8454 subi r24,lo8(-(188)) |
375 0326 9F4F sbci r25,hi8(-(188)) |
376 0328 9093 0000 sts (ServoFrameTime.1545)+1,r25 |
377 032c 8093 0000 sts ServoFrameTime.1545,r24 |
378 0330 8091 0000 lds r24,ServoActive |
379 0334 8823 tst r24 |
380 0336 01F0 breq .L41 |
381 0338 8091 0000 lds r24,RC_Quality |
382 033c 853B cpi r24,lo8(-75) |
383 033e 00F0 brlo .+2 |
384 0340 00C0 rjmp .L65 |
385 .L41: |
386 0342 469A sbi 40-32,6 |
387 .L42: |
388 0344 8091 0000 lds r24,ServoIndex.1546 |
389 0348 8F5F subi r24,lo8(-(1)) |
390 034a 8093 0000 sts ServoIndex.1546,r24 |
391 034e 9091 0000 lds r25,ParamSet+47 |
392 0352 9817 cp r25,r24 |
393 0354 00F4 brsh .L58 |
394 0356 1092 0000 sts ServoIndex.1546,__zero_reg__ |
395 .L58: |
396 035a 4091 0000 lds r20,RemainingPulse.1544 |
397 035e 5091 0000 lds r21,(RemainingPulse.1544)+1 |
398 0362 00C0 rjmp .L22 |
399 .L10: |
400 0364 8091 B000 lds r24,176 |
401 0368 8064 ori r24,lo8(64) |
402 036a 8093 B000 sts 176,r24 |
403 036e 8091 0000 lds r24,ParamSet+47 |
404 0372 90E0 ldi r25,lo8(0) |
405 0374 2DED ldi r18,lo8(1757) |
406 0376 36E0 ldi r19,hi8(1757) |
407 0378 829F mul r24,r18 |
408 037a A001 movw r20,r0 |
409 037c 839F mul r24,r19 |
410 037e 500D add r21,r0 |
411 0380 929F mul r25,r18 |
412 0382 500D add r21,r0 |
413 0384 1124 clr r1 |
414 0386 8091 0000 lds r24,ServoFrameTime.1545 |
415 038a 9091 0000 lds r25,(ServoFrameTime.1545)+1 |
416 038e 481B sub r20,r24 |
417 0390 590B sbc r21,r25 |
418 0392 00C0 rjmp .L22 |
419 .L55: |
420 0394 3093 0000 sts (ServoNickValue)+1,r19 |
421 0398 2093 0000 sts ServoNickValue,r18 |
422 039c 00C0 rjmp .L15 |
423 .L21: |
424 039e 89EA ldi r24,lo8(937) |
425 03a0 93E0 ldi r25,hi8(937) |
426 03a2 9093 0000 sts (RemainingPulse.1544)+1,r25 |
427 03a6 8093 0000 sts RemainingPulse.1544,r24 |
428 03aa E130 cpi r30,lo8(1) |
429 03ac 01F4 brne .+2 |
430 03ae 00C0 rjmp .L24 |
431 03b0 E230 cpi r30,lo8(2) |
432 03b2 01F4 brne .+2 |
433 03b4 00C0 rjmp .L66 |
434 03b6 F0E0 ldi r31,lo8(0) |
435 03b8 EE0F lsl r30 |
436 03ba FF1F rol r31 |
437 03bc E050 subi r30,lo8(-(PPM_in)) |
438 03be F040 sbci r31,hi8(-(PPM_in)) |
439 03c0 8081 ld r24,Z |
440 03c2 9181 ldd r25,Z+1 |
441 03c4 880F lsl r24 |
442 03c6 991F rol r25 |
443 03c8 8755 subi r24,lo8(-(937)) |
444 03ca 9C4F sbci r25,hi8(-(937)) |
445 03cc 9093 0000 sts (RemainingPulse.1544)+1,r25 |
446 03d0 8093 0000 sts RemainingPulse.1544,r24 |
447 .L32: |
448 03d4 4091 0000 lds r20,RemainingPulse.1544 |
449 03d8 5091 0000 lds r21,(RemainingPulse.1544)+1 |
450 03dc 85E0 ldi r24,hi8(1501) |
451 03de 4D3D cpi r20,lo8(1501) |
452 03e0 5807 cpc r21,r24 |
453 03e2 00F4 brsh .+2 |
454 03e4 00C0 rjmp .L39 |
455 03e6 4CED ldi r20,lo8(1500) |
456 03e8 55E0 ldi r21,hi8(1500) |
457 .L40: |
458 03ea 4C5B subi r20,lo8(-(-188)) |
459 03ec 5040 sbci r21,hi8(-(-188)) |
460 03ee 8091 0000 lds r24,ServoFrameTime.1545 |
461 03f2 9091 0000 lds r25,(ServoFrameTime.1545)+1 |
462 03f6 840F add r24,r20 |
463 03f8 951F adc r25,r21 |
464 03fa 9093 0000 sts (ServoFrameTime.1545)+1,r25 |
465 03fe 8093 0000 sts ServoFrameTime.1545,r24 |
466 0402 00C0 rjmp .L22 |
467 .L12: |
468 0404 C090 0000 lds r12,ServoNickValue |
469 0408 D090 0000 lds r13,(ServoNickValue)+1 |
470 040c E090 0000 lds r14,ParamSet+40 |
471 0410 FF24 clr r15 |
472 0412 00E0 ldi r16,lo8(0) |
473 0414 10E0 ldi r17,hi8(0) |
474 0416 6091 0000 lds r22,IntegralGyroNick |
475 041a 7091 0000 lds r23,(IntegralGyroNick)+1 |
476 041e 8091 0000 lds r24,(IntegralGyroNick)+2 |
477 0422 9091 0000 lds r25,(IntegralGyroNick)+3 |
478 0426 20E8 ldi r18,lo8(128) |
479 0428 30E0 ldi r19,hi8(128) |
480 042a 40E0 ldi r20,hlo8(128) |
481 042c 50E0 ldi r21,hhi8(128) |
482 042e 0E94 0000 call __divmodsi4 |
483 0432 C801 movw r24,r16 |
484 0434 B701 movw r22,r14 |
485 0436 0E94 0000 call __mulsi3 |
486 043a 660F lsl r22 |
487 043c 771F rol r23 |
488 043e 881F rol r24 |
489 0440 991F rol r25 |
490 0442 660F lsl r22 |
491 0444 771F rol r23 |
492 0446 881F rol r24 |
493 0448 991F rol r25 |
494 044a 20E0 ldi r18,lo8(256) |
495 044c 31E0 ldi r19,hi8(256) |
496 044e 40E0 ldi r20,hlo8(256) |
497 0450 50E0 ldi r21,hhi8(256) |
498 0452 0E94 0000 call __divmodsi4 |
499 0456 C21A sub r12,r18 |
500 0458 D30A sbc r13,r19 |
501 045a D092 0000 sts (ServoNickValue)+1,r13 |
502 045e C092 0000 sts ServoNickValue,r12 |
503 0462 00C0 rjmp .L13 |
504 .L17: |
505 0464 2757 subi r18,lo8(375) |
506 0466 3140 sbci r19,hi8(375) |
507 0468 00F0 brlo .+2 |
508 046a 00C0 rjmp .L18 |
509 046c 87E7 ldi r24,lo8(375) |
510 046e 91E0 ldi r25,hi8(375) |
511 0470 9093 0000 sts (RemainingPulse.1544)+1,r25 |
512 0474 8093 0000 sts RemainingPulse.1544,r24 |
513 0478 00C0 rjmp .L18 |
514 .L65: |
515 047a 4698 cbi 40-32,6 |
516 047c 00C0 rjmp .L42 |
517 .L24: |
518 047e 8091 0000 lds r24,FCParam+21 |
519 0482 482F mov r20,r24 |
520 0484 50E0 ldi r21,lo8(0) |
521 0486 440F lsl r20 |
522 0488 551F rol r21 |
523 048a 440F lsl r20 |
524 048c 551F rol r21 |
525 048e 2091 0000 lds r18,ServoNickOffset.1547 |
526 0492 3091 0000 lds r19,(ServoNickOffset.1547)+1 |
527 0496 C901 movw r24,r18 |
528 0498 880F lsl r24 |
529 049a 991F rol r25 |
530 049c 820F add r24,r18 |
531 049e 931F adc r25,r19 |
532 04a0 480F add r20,r24 |
533 04a2 591F adc r21,r25 |
534 04a4 57FD sbrc r21,7 |
535 04a6 00C0 rjmp .L67 |
536 .L26: |
537 04a8 CA01 movw r24,r20 |
538 04aa 9595 asr r25 |
539 04ac 8795 ror r24 |
540 04ae 9595 asr r25 |
541 04b0 8795 ror r24 |
542 04b2 9093 0000 sts (ServoNickOffset.1547)+1,r25 |
543 04b6 8093 0000 sts ServoNickOffset.1547,r24 |
544 04ba 9093 0000 sts (ServoNickValue)+1,r25 |
545 04be 8093 0000 sts ServoNickValue,r24 |
546 04c2 8091 0000 lds r24,ParamSet+87 |
547 04c6 80FF sbrs r24,0 |
548 04c8 00C0 rjmp .L27 |
549 04ca C090 0000 lds r12,ServoNickValue |
550 04ce D090 0000 lds r13,(ServoNickValue)+1 |
551 04d2 E090 0000 lds r14,ParamSet+40 |
552 04d6 FF24 clr r15 |
553 04d8 00E0 ldi r16,lo8(0) |
554 04da 10E0 ldi r17,hi8(0) |
555 04dc 6091 0000 lds r22,IntegralGyroNick |
556 04e0 7091 0000 lds r23,(IntegralGyroNick)+1 |
557 04e4 8091 0000 lds r24,(IntegralGyroNick)+2 |
558 04e8 9091 0000 lds r25,(IntegralGyroNick)+3 |
559 04ec 20E8 ldi r18,lo8(128) |
560 04ee 30E0 ldi r19,hi8(128) |
561 04f0 40E0 ldi r20,hlo8(128) |
562 04f2 50E0 ldi r21,hhi8(128) |
563 04f4 0E94 0000 call __divmodsi4 |
564 04f8 C801 movw r24,r16 |
565 04fa B701 movw r22,r14 |
566 04fc 0E94 0000 call __mulsi3 |
567 0500 660F lsl r22 |
568 0502 771F rol r23 |
569 0504 881F rol r24 |
570 0506 991F rol r25 |
571 0508 660F lsl r22 |
572 050a 771F rol r23 |
573 050c 881F rol r24 |
574 050e 991F rol r25 |
575 0510 20E0 ldi r18,lo8(256) |
576 0512 31E0 ldi r19,hi8(256) |
577 0514 40E0 ldi r20,hlo8(256) |
578 0516 50E0 ldi r21,hhi8(256) |
579 0518 0E94 0000 call __divmodsi4 |
580 051c C20E add r12,r18 |
581 051e D31E adc r13,r19 |
582 0520 D092 0000 sts (ServoNickValue)+1,r13 |
583 0524 C092 0000 sts ServoNickValue,r12 |
584 .L28: |
585 0528 8091 0000 lds r24,ParamSet+41 |
586 052c 282F mov r18,r24 |
587 052e 30E0 ldi r19,lo8(0) |
588 0530 220F lsl r18 |
589 0532 331F rol r19 |
590 0534 220F lsl r18 |
591 0536 331F rol r19 |
592 0538 8091 0000 lds r24,ServoNickValue |
593 053c 9091 0000 lds r25,(ServoNickValue)+1 |
594 0540 8217 cp r24,r18 |
595 0542 9307 cpc r25,r19 |
596 0544 04F0 brlt .L56 |
597 0546 8091 0000 lds r24,ParamSet+42 |
598 054a 282F mov r18,r24 |
599 054c 30E0 ldi r19,lo8(0) |
600 054e 220F lsl r18 |
601 0550 331F rol r19 |
602 0552 220F lsl r18 |
603 0554 331F rol r19 |
604 0556 8091 0000 lds r24,ServoNickValue |
605 055a 9091 0000 lds r25,(ServoNickValue)+1 |
606 055e 2817 cp r18,r24 |
607 0560 3907 cpc r19,r25 |
608 0562 04F4 brge .L30 |
609 .L56: |
610 0564 3093 0000 sts (ServoNickValue)+1,r19 |
611 0568 2093 0000 sts ServoNickValue,r18 |
612 .L30: |
613 056c 8091 0000 lds r24,ServoNickValue |
614 0570 9091 0000 lds r25,(ServoNickValue)+1 |
615 0574 8755 subi r24,lo8(-(425)) |
616 0576 9E4F sbci r25,hi8(-(425)) |
617 0578 9093 0000 sts (RemainingPulse.1544)+1,r25 |
618 057c 8093 0000 sts RemainingPulse.1544,r24 |
619 0580 8091 0000 lds r24,ServoNickValue |
620 0584 9091 0000 lds r25,(ServoNickValue)+1 |
621 0588 97FD sbrc r25,7 |
622 058a 00C0 rjmp .L68 |
623 .L31: |
624 058c 9595 asr r25 |
625 058e 8795 ror r24 |
626 0590 9595 asr r25 |
627 0592 8795 ror r24 |
628 0594 9093 0000 sts (ServoNickValue)+1,r25 |
629 0598 8093 0000 sts ServoNickValue,r24 |
630 059c 00C0 rjmp .L32 |
631 .L39: |
632 059e 81E0 ldi r24,hi8(375) |
633 05a0 4737 cpi r20,lo8(375) |
634 05a2 5807 cpc r21,r24 |
635 05a4 00F0 brlo .+2 |
636 05a6 00C0 rjmp .L40 |
637 05a8 47E7 ldi r20,lo8(375) |
638 05aa 51E0 ldi r21,hi8(375) |
639 05ac 00C0 rjmp .L40 |
640 .L64: |
641 05ae 0396 adiw r24,3 |
642 05b0 00C0 rjmp .L16 |
643 .L63: |
644 05b2 4D5F subi r20,lo8(-(3)) |
645 05b4 5F4F sbci r21,hi8(-(3)) |
646 05b6 00C0 rjmp .L11 |
647 .L66: |
648 05b8 8091 0000 lds r24,FCParam+22 |
649 05bc 482F mov r20,r24 |
650 05be 50E0 ldi r21,lo8(0) |
651 05c0 440F lsl r20 |
652 05c2 551F rol r21 |
653 05c4 440F lsl r20 |
654 05c6 551F rol r21 |
655 05c8 2091 0000 lds r18,ServoRollOffset.1548 |
656 05cc 3091 0000 lds r19,(ServoRollOffset.1548)+1 |
657 05d0 C901 movw r24,r18 |
658 05d2 880F lsl r24 |
659 05d4 991F rol r25 |
660 05d6 820F add r24,r18 |
661 05d8 931F adc r25,r19 |
662 05da 480F add r20,r24 |
663 05dc 591F adc r21,r25 |
664 05de 57FD sbrc r21,7 |
665 05e0 00C0 rjmp .L69 |
666 .L33: |
667 05e2 CA01 movw r24,r20 |
668 05e4 9595 asr r25 |
669 05e6 8795 ror r24 |
670 05e8 9595 asr r25 |
671 05ea 8795 ror r24 |
672 05ec 9093 0000 sts (ServoRollOffset.1548)+1,r25 |
673 05f0 8093 0000 sts ServoRollOffset.1548,r24 |
674 05f4 9093 0000 sts (ServoRollValue)+1,r25 |
675 05f8 8093 0000 sts ServoRollValue,r24 |
676 05fc 8091 0000 lds r24,ParamSet+87 |
677 0600 81FF sbrs r24,1 |
678 0602 00C0 rjmp .L34 |
679 0604 C090 0000 lds r12,ServoRollValue |
680 0608 D090 0000 lds r13,(ServoRollValue)+1 |
681 060c E090 0000 lds r14,ParamSet+44 |
682 0610 FF24 clr r15 |
683 0612 00E0 ldi r16,lo8(0) |
684 0614 10E0 ldi r17,hi8(0) |
685 0616 6091 0000 lds r22,IntegralGyroRoll |
686 061a 7091 0000 lds r23,(IntegralGyroRoll)+1 |
687 061e 8091 0000 lds r24,(IntegralGyroRoll)+2 |
688 0622 9091 0000 lds r25,(IntegralGyroRoll)+3 |
689 0626 20E8 ldi r18,lo8(128) |
690 0628 30E0 ldi r19,hi8(128) |
691 062a 40E0 ldi r20,hlo8(128) |
692 062c 50E0 ldi r21,hhi8(128) |
693 062e 0E94 0000 call __divmodsi4 |
694 0632 C801 movw r24,r16 |
695 0634 B701 movw r22,r14 |
696 0636 0E94 0000 call __mulsi3 |
697 063a 660F lsl r22 |
698 063c 771F rol r23 |
699 063e 881F rol r24 |
700 0640 991F rol r25 |
701 0642 660F lsl r22 |
702 0644 771F rol r23 |
703 0646 881F rol r24 |
704 0648 991F rol r25 |
705 064a 20E0 ldi r18,lo8(256) |
706 064c 31E0 ldi r19,hi8(256) |
707 064e 40E0 ldi r20,hlo8(256) |
708 0650 50E0 ldi r21,hhi8(256) |
709 0652 0E94 0000 call __divmodsi4 |
710 0656 C20E add r12,r18 |
711 0658 D31E adc r13,r19 |
712 065a D092 0000 sts (ServoRollValue)+1,r13 |
713 065e C092 0000 sts ServoRollValue,r12 |
714 .L35: |
715 0662 8091 0000 lds r24,ParamSet+45 |
716 0666 282F mov r18,r24 |
717 0668 30E0 ldi r19,lo8(0) |
718 066a 220F lsl r18 |
719 066c 331F rol r19 |
720 066e 220F lsl r18 |
721 0670 331F rol r19 |
722 0672 8091 0000 lds r24,ServoRollValue |
723 0676 9091 0000 lds r25,(ServoRollValue)+1 |
724 067a 8217 cp r24,r18 |
725 067c 9307 cpc r25,r19 |
726 067e 04F0 brlt .L57 |
727 0680 8091 0000 lds r24,ParamSet+46 |
728 0684 282F mov r18,r24 |
729 0686 30E0 ldi r19,lo8(0) |
730 0688 220F lsl r18 |
731 068a 331F rol r19 |
732 068c 220F lsl r18 |
733 068e 331F rol r19 |
734 0690 8091 0000 lds r24,ServoRollValue |
735 0694 9091 0000 lds r25,(ServoRollValue)+1 |
736 0698 2817 cp r18,r24 |
737 069a 3907 cpc r19,r25 |
738 069c 04F4 brge .L37 |
739 .L57: |
740 069e 3093 0000 sts (ServoRollValue)+1,r19 |
741 06a2 2093 0000 sts ServoRollValue,r18 |
742 .L37: |
743 06a6 8091 0000 lds r24,ServoRollValue |
744 06aa 9091 0000 lds r25,(ServoRollValue)+1 |
745 06ae 8755 subi r24,lo8(-(425)) |
746 06b0 9E4F sbci r25,hi8(-(425)) |
747 06b2 9093 0000 sts (RemainingPulse.1544)+1,r25 |
748 06b6 8093 0000 sts RemainingPulse.1544,r24 |
749 06ba 8091 0000 lds r24,ServoRollValue |
750 06be 9091 0000 lds r25,(ServoRollValue)+1 |
751 06c2 97FD sbrc r25,7 |
752 06c4 00C0 rjmp .L70 |
753 .L38: |
754 06c6 9595 asr r25 |
755 06c8 8795 ror r24 |
756 06ca 9595 asr r25 |
757 06cc 8795 ror r24 |
758 06ce 9093 0000 sts (ServoRollValue)+1,r25 |
759 06d2 8093 0000 sts ServoRollValue,r24 |
760 06d6 00C0 rjmp .L32 |
761 .L34: |
762 06d8 C090 0000 lds r12,ServoRollValue |
763 06dc D090 0000 lds r13,(ServoRollValue)+1 |
764 06e0 E090 0000 lds r14,ParamSet+44 |
765 06e4 FF24 clr r15 |
766 06e6 00E0 ldi r16,lo8(0) |
767 06e8 10E0 ldi r17,hi8(0) |
768 06ea 6091 0000 lds r22,IntegralGyroRoll |
769 06ee 7091 0000 lds r23,(IntegralGyroRoll)+1 |
770 06f2 8091 0000 lds r24,(IntegralGyroRoll)+2 |
771 06f6 9091 0000 lds r25,(IntegralGyroRoll)+3 |
772 06fa 20E8 ldi r18,lo8(128) |
773 06fc 30E0 ldi r19,hi8(128) |
774 06fe 40E0 ldi r20,hlo8(128) |
775 0700 50E0 ldi r21,hhi8(128) |
776 0702 0E94 0000 call __divmodsi4 |
777 0706 C801 movw r24,r16 |
778 0708 B701 movw r22,r14 |
779 070a 0E94 0000 call __mulsi3 |
780 070e 660F lsl r22 |
781 0710 771F rol r23 |
782 0712 881F rol r24 |
783 0714 991F rol r25 |
784 0716 660F lsl r22 |
785 0718 771F rol r23 |
786 071a 881F rol r24 |
787 071c 991F rol r25 |
788 071e 20E0 ldi r18,lo8(256) |
789 0720 31E0 ldi r19,hi8(256) |
790 0722 40E0 ldi r20,hlo8(256) |
791 0724 50E0 ldi r21,hhi8(256) |
792 0726 0E94 0000 call __divmodsi4 |
793 072a C21A sub r12,r18 |
794 072c D30A sbc r13,r19 |
795 072e D092 0000 sts (ServoRollValue)+1,r13 |
796 0732 C092 0000 sts ServoRollValue,r12 |
797 0736 00C0 rjmp .L35 |
798 .L27: |
799 0738 C090 0000 lds r12,ServoNickValue |
800 073c D090 0000 lds r13,(ServoNickValue)+1 |
801 0740 E090 0000 lds r14,ParamSet+40 |
802 0744 FF24 clr r15 |
803 0746 00E0 ldi r16,lo8(0) |
804 0748 10E0 ldi r17,hi8(0) |
805 074a 6091 0000 lds r22,IntegralGyroNick |
806 074e 7091 0000 lds r23,(IntegralGyroNick)+1 |
807 0752 8091 0000 lds r24,(IntegralGyroNick)+2 |
808 0756 9091 0000 lds r25,(IntegralGyroNick)+3 |
809 075a 20E8 ldi r18,lo8(128) |
810 075c 30E0 ldi r19,hi8(128) |
811 075e 40E0 ldi r20,hlo8(128) |
812 0760 50E0 ldi r21,hhi8(128) |
813 0762 0E94 0000 call __divmodsi4 |
814 0766 C801 movw r24,r16 |
815 0768 B701 movw r22,r14 |
816 076a 0E94 0000 call __mulsi3 |
817 076e 660F lsl r22 |
818 0770 771F rol r23 |
819 0772 881F rol r24 |
820 0774 991F rol r25 |
821 0776 660F lsl r22 |
822 0778 771F rol r23 |
823 077a 881F rol r24 |
824 077c 991F rol r25 |
825 077e 20E0 ldi r18,lo8(256) |
826 0780 31E0 ldi r19,hi8(256) |
827 0782 40E0 ldi r20,hlo8(256) |
828 0784 50E0 ldi r21,hhi8(256) |
829 0786 0E94 0000 call __divmodsi4 |
830 078a C21A sub r12,r18 |
831 078c D30A sbc r13,r19 |
832 078e D092 0000 sts (ServoNickValue)+1,r13 |
833 0792 C092 0000 sts ServoNickValue,r12 |
834 0796 00C0 rjmp .L28 |
835 .L68: |
836 0798 0396 adiw r24,3 |
837 079a 00C0 rjmp .L31 |
838 .L67: |
839 079c 4D5F subi r20,lo8(-(3)) |
840 079e 5F4F sbci r21,hi8(-(3)) |
841 07a0 00C0 rjmp .L26 |
842 .L69: |
843 07a2 4D5F subi r20,lo8(-(3)) |
844 07a4 5F4F sbci r21,hi8(-(3)) |
845 07a6 00C0 rjmp .L33 |
846 .L70: |
847 07a8 0396 adiw r24,3 |
848 07aa 00C0 rjmp .L38 |
850 .global ServoNickValue |
851 .global ServoNickValue |
852 .section .bss |
855 ServoNickValue: |
856 0000 0000 .skip 2,0 |
857 .global ServoRollValue |
858 .global ServoRollValue |
861 ServoRollValue: |
862 0002 0000 .skip 2,0 |
863 .global ServoActive |
864 .global ServoActive |
867 ServoActive: |
868 0004 00 .skip 1,0 |
869 .data |
872 ServoRollOffset.1548: |
873 0000 FC01 .word 508 |
876 ServoNickOffset.1547: |
877 0002 FC01 .word 508 |
878 .lcomm ServoIndex.1546,1 |
879 .lcomm ServoFrameTime.1545,2 |
880 .lcomm RemainingPulse.1544,2 |
881 .lcomm PulseOutput.1543,1 |
882 .global __do_copy_data |
883 .global __do_clear_bss |
DEFINED SYMBOLS |
*ABS*:00000000 timer2.c |
C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:2 *ABS*:0000003f __SREG__ |
C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:3 *ABS*:0000003e __SP_H__ |
C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:4 *ABS*:0000003d __SP_L__ |
C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:5 *ABS*:00000034 __CCP__ |
C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:6 *ABS*:00000000 __tmp_reg__ |
C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:7 *ABS*:00000001 __zero_reg__ |
C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:11 .text:00000000 TIMER2_Init |
C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:60 .text:00000050 Servo_On |
C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:867 .bss:00000004 ServoActive |
C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:71 .text:0000005a Servo_Off |
C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:82 .text:00000064 __vector_9 |
C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:880 .bss:0000000a PulseOutput.1543 |
C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:879 .bss:00000008 RemainingPulse.1544 |
.bss:00000005 ServoIndex.1546 |
C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:878 .bss:00000006 ServoFrameTime.1545 |
C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:876 .data:00000002 ServoNickOffset.1547 |
C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:855 .bss:00000000 ServoNickValue |
C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:872 .data:00000000 ServoRollOffset.1548 |
C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:861 .bss:00000002 ServoRollValue |
|
UNDEFINED SYMBOLS |
BoardRelease |
ParamSet |
FCParam |
IntegralGyroNick |
__divmodsi4 |
__mulsi3 |
RC_Quality |
PPM_in |
IntegralGyroRoll |
__do_copy_data |
__do_clear_bss |