1,685 → 1,643 |
1 .file "rc.c" |
2 .arch atmega644p |
3 __SREG__ = 0x3f |
4 __SP_H__ = 0x3e |
5 __SP_L__ = 0x3d |
2 __SREG__ = 0x3f |
3 __SP_H__ = 0x3e |
4 __SP_L__ = 0x3d |
5 __CCP__ = 0x34 |
6 __tmp_reg__ = 0 |
7 __zero_reg__ = 1 |
8 .global __do_copy_data |
9 .global __do_clear_bss |
10 .global NewPpmData |
11 .data |
14 NewPpmData: |
15 0000 01 .byte 1 |
16 .global tmpChannels |
17 .global tmpChannels |
18 .section .bss |
21 tmpChannels: |
22 0000 00 .skip 1,0 |
23 .text |
24 .global rc_sum_init |
26 rc_sum_init: |
27 /* prologue: frame size=0 */ |
28 /* prologue end (size=0) */ |
29 0000 89E1 ldi r24,lo8(25) |
30 0002 A0E0 ldi r26,lo8(PPM_diff) |
31 0004 B0E0 ldi r27,hi8(PPM_diff) |
32 0006 E0E0 ldi r30,lo8(PPM_in) |
33 0008 F0E0 ldi r31,hi8(PPM_in) |
34 .L5: |
35 000a 1182 std Z+1,__zero_reg__ |
36 000c 1082 st Z,__zero_reg__ |
37 000e 3296 adiw r30,2 |
38 0010 1196 adiw r26,1 |
39 0012 1C92 st X,__zero_reg__ |
40 0014 1E92 st -X,__zero_reg__ |
41 0016 1296 adiw r26,2 |
42 0018 8150 subi r24,lo8(-(-1)) |
43 001a 87FF sbrs r24,7 |
44 001c F6CF rjmp .L5 |
45 001e 1092 0000 sts (AdNeutralGier)+1,__zero_reg__ |
46 0022 1092 0000 sts AdNeutralGier,__zero_reg__ |
47 0026 1092 0000 sts (AdNeutralRoll)+1,__zero_reg__ |
48 002a 1092 0000 sts AdNeutralRoll,__zero_reg__ |
49 002e 1092 0000 sts (AdNeutralNick)+1,__zero_reg__ |
50 0032 1092 0000 sts AdNeutralNick,__zero_reg__ |
51 /* epilogue: frame size=0 */ |
52 0036 0895 ret |
53 /* epilogue end (size=1) */ |
54 /* function rc_sum_init size 28 (27) */ |
56 .lcomm AltICR.0,2 |
57 .lcomm index.1,2 |
58 .lcomm AltICR.2,2 |
59 .lcomm ppm_in.3,26 |
60 .lcomm ppm_diff.4,26 |
61 .lcomm old_ppm_in.5,26 |
62 .lcomm old_ppm_diff.6,26 |
63 .lcomm index.7,1 |
64 .lcomm okay_cnt.8,1 |
65 .global __vector_12 |
67 __vector_12: |
68 /* prologue: frame size=0 */ |
69 0038 1F92 push __zero_reg__ |
70 003a 0F92 push __tmp_reg__ |
71 003c 0FB6 in __tmp_reg__,__SREG__ |
72 003e 0F92 push __tmp_reg__ |
73 0040 1124 clr __zero_reg__ |
74 0042 0F93 push r16 |
75 0044 1F93 push r17 |
76 0046 2F93 push r18 |
77 0048 3F93 push r19 |
78 004a 4F93 push r20 |
79 004c 5F93 push r21 |
80 004e 6F93 push r22 |
81 0050 7F93 push r23 |
82 0052 8F93 push r24 |
83 0054 9F93 push r25 |
84 0056 AF93 push r26 |
85 0058 BF93 push r27 |
86 005a CF93 push r28 |
87 005c DF93 push r29 |
88 005e EF93 push r30 |
89 0060 FF93 push r31 |
90 /* prologue end (size=21) */ |
91 0062 8091 0000 lds r24,EE_Parameter+99 |
92 0066 82FD sbrc r24,2 |
93 0068 CFC0 rjmp .L9 |
94 006a 4091 8600 lds r20,134 |
95 006e 5091 8700 lds r21,(134)+1 |
96 0072 8091 0000 lds r24,AltICR.0 |
97 0076 9091 0000 lds r25,(AltICR.0)+1 |
98 007a 481B sub r20,r24 |
99 007c 590B sbc r21,r25 |
100 007e 8091 8600 lds r24,134 |
101 0082 9091 8700 lds r25,(134)+1 |
102 0086 9093 0000 sts (AltICR.0)+1,r25 |
103 008a 8093 0000 sts AltICR.0,r24 |
104 008e CA01 movw r24,r20 |
105 0090 8D54 subi r24,lo8(-(-1101)) |
106 0092 9440 sbci r25,hi8(-(-1101)) |
107 0094 A091 0000 lds r26,index.1 |
108 0098 B091 0000 lds r27,(index.1)+1 |
109 009c 835F subi r24,lo8(6899) |
110 009e 9A41 sbci r25,hi8(6899) |
111 00a0 78F4 brsh .L10 |
112 00a2 8091 0000 lds r24,index.1 |
113 00a6 8093 0000 sts Channels,r24 |
114 00aa 1497 sbiw r26,4 |
115 00ac 14F0 brlt .L11 |
116 00ae 1092 0000 sts NewPpmData,__zero_reg__ |
117 .L11: |
118 00b2 81E0 ldi r24,lo8(1) |
119 00b4 90E0 ldi r25,hi8(1) |
120 00b6 9093 0000 sts (index.1)+1,r25 |
121 00ba 8093 0000 sts index.1,r24 |
122 00be 07C2 rjmp .L8 |
123 .L10: |
124 00c0 AD30 cpi r26,13 |
125 00c2 B105 cpc r27,__zero_reg__ |
126 00c4 0CF0 brlt .+2 |
127 00c6 03C2 rjmp .L8 |
128 00c8 CA01 movw r24,r20 |
129 00ca 8B5F subi r24,lo8(-(-251)) |
130 00cc 9040 sbci r25,hi8(-(-251)) |
131 00ce 845B subi r24,lo8(436) |
132 00d0 9140 sbci r25,hi8(436) |
133 00d2 08F0 brlo .+2 |
134 00d4 74C0 rjmp .L14 |
135 00d6 425D subi r20,lo8(-(-466)) |
136 00d8 5140 sbci r21,hi8(-(-466)) |
137 00da FD01 movw r30,r26 |
138 00dc EA0F add r30,r26 |
139 00de FB1F adc r31,r27 |
140 00e0 E050 subi r30,lo8(-(PPM_in)) |
141 00e2 F040 sbci r31,hi8(-(PPM_in)) |
142 00e4 8081 ld r24,Z |
143 00e6 9181 ldd r25,Z+1 |
144 00e8 FA01 movw r30,r20 |
145 00ea E81B sub r30,r24 |
146 00ec F90B sbc r31,r25 |
147 00ee CF01 movw r24,r30 |
148 00f0 F7FF sbrs r31,7 |
149 00f2 03C0 rjmp .L16 |
150 00f4 9095 com r25 |
151 00f6 8195 neg r24 |
152 00f8 9F4F sbci r25,lo8(-1) |
153 .L16: |
154 00fa 0697 sbiw r24,6 |
155 00fc 5CF4 brge .L15 |
156 00fe 8091 0000 lds r24,SenderOkay |
157 0102 883C cpi r24,lo8(-56) |
158 0104 20F4 brsh .L17 |
159 0106 8091 0000 lds r24,SenderOkay |
160 010a 865F subi r24,lo8(-(10)) |
161 010c 01C0 rjmp .L87 |
162 .L17: |
163 010e 88EC ldi r24,lo8(-56) |
164 .L87: |
165 0110 8093 0000 sts SenderOkay,r24 |
166 .L15: |
167 0114 FD01 movw r30,r26 |
168 0116 EA0F add r30,r26 |
169 0118 FB1F adc r31,r27 |
170 011a E050 subi r30,lo8(-(PPM_in)) |
171 011c F040 sbci r31,hi8(-(PPM_in)) |
172 011e 8081 ld r24,Z |
173 0120 9181 ldd r25,Z+1 |
174 0122 9C01 movw r18,r24 |
175 0124 220F lsl r18 |
176 0126 331F rol r19 |
177 0128 280F add r18,r24 |
178 012a 391F adc r19,r25 |
179 012c 240F add r18,r20 |
180 012e 351F adc r19,r21 |
181 0130 37FF sbrs r19,7 |
182 0132 02C0 rjmp .L19 |
183 0134 2D5F subi r18,lo8(-(3)) |
184 0136 3F4F sbci r19,hi8(-(3)) |
185 .L19: |
186 0138 E901 movw r28,r18 |
187 013a D595 asr r29 |
188 013c C795 ror r28 |
189 013e D595 asr r29 |
190 0140 C795 ror r28 |
191 0142 CA01 movw r24,r20 |
192 0144 0196 adiw r24,1 |
193 0146 8C17 cp r24,r28 |
194 0148 9D07 cpc r25,r29 |
195 014a 14F4 brge .L20 |
196 014c 2197 sbiw r28,1 |
197 014e 06C0 rjmp .L21 |
198 .L20: |
199 0150 4150 subi r20,lo8(-(-1)) |
200 0152 5040 sbci r21,hi8(-(-1)) |
201 0154 C417 cp r28,r20 |
202 0156 D507 cpc r29,r21 |
203 0158 0CF4 brge .L21 |
204 015a 2196 adiw r28,1 |
205 .L21: |
206 015c 8091 0000 lds r24,SenderOkay |
207 0160 833C cpi r24,lo8(-61) |
208 0162 E0F0 brlo .L23 |
209 0164 8D01 movw r16,r26 |
210 0166 0A0F add r16,r26 |
211 0168 1B1F adc r17,r27 |
212 016a F801 movw r30,r16 |
213 016c E050 subi r30,lo8(-(PPM_in)) |
214 016e F040 sbci r31,hi8(-(PPM_in)) |
215 0170 8081 ld r24,Z |
216 0172 9181 ldd r25,Z+1 |
217 0174 9E01 movw r18,r28 |
218 0176 281B sub r18,r24 |
219 0178 390B sbc r19,r25 |
220 017a C901 movw r24,r18 |
221 017c 63E0 ldi r22,lo8(3) |
222 017e 70E0 ldi r23,hi8(3) |
223 0180 0E94 0000 call __divmodhi4 |
224 0184 CB01 movw r24,r22 |
225 0186 880F lsl r24 |
226 0188 991F rol r25 |
227 018a 860F add r24,r22 |
228 018c 971F adc r25,r23 |
229 018e 0050 subi r16,lo8(-(PPM_diff)) |
230 0190 1040 sbci r17,hi8(-(PPM_diff)) |
231 0192 D801 movw r26,r16 |
232 0194 1196 adiw r26,1 |
233 0196 9C93 st X,r25 |
234 0198 8E93 st -X,r24 |
235 019a 07C0 rjmp .L24 |
236 .L23: |
237 019c AA0F add r26,r26 |
238 019e BB1F adc r27,r27 |
239 01a0 A050 subi r26,lo8(-(PPM_diff)) |
240 01a2 B040 sbci r27,hi8(-(PPM_diff)) |
241 01a4 1196 adiw r26,1 |
242 01a6 1C92 st X,__zero_reg__ |
243 01a8 1E92 st -X,__zero_reg__ |
244 .L24: |
245 01aa E091 0000 lds r30,index.1 |
246 01ae F091 0000 lds r31,(index.1)+1 |
247 01b2 EE0F add r30,r30 |
248 01b4 FF1F adc r31,r31 |
249 01b6 E050 subi r30,lo8(-(PPM_in)) |
250 01b8 F040 sbci r31,hi8(-(PPM_in)) |
251 01ba D183 std Z+1,r29 |
252 01bc C083 st Z,r28 |
253 .L14: |
254 01be 2091 0000 lds r18,index.1 |
255 01c2 3091 0000 lds r19,(index.1)+1 |
256 01c6 2F5F subi r18,lo8(-(1)) |
257 01c8 3F4F sbci r19,hi8(-(1)) |
258 01ca 3093 0000 sts (index.1)+1,r19 |
259 01ce 2093 0000 sts index.1,r18 |
260 01d2 8091 0000 lds r24,PlatinenVersion |
261 01d6 8431 cpi r24,lo8(20) |
262 01d8 08F0 brlo .+2 |
263 01da 79C1 rjmp .L8 |
264 01dc 2530 cpi r18,5 |
265 01de 3105 cpc r19,__zero_reg__ |
266 01e0 11F4 brne .L26 |
267 01e2 5D9A sbi 43-0x20,5 |
268 01e4 01C0 rjmp .L27 |
269 .L26: |
270 01e6 5D98 cbi 43-0x20,5 |
271 .L27: |
272 01e8 8091 0000 lds r24,index.1 |
273 01ec 9091 0000 lds r25,(index.1)+1 |
274 01f0 8630 cpi r24,6 |
275 01f2 9105 cpc r25,__zero_reg__ |
276 01f4 11F4 brne .L28 |
277 01f6 5C9A sbi 43-0x20,4 |
278 01f8 01C0 rjmp .L29 |
279 .L28: |
280 01fa 5C98 cbi 43-0x20,4 |
281 .L29: |
282 01fc 0797 sbiw r24,7 |
283 01fe 11F4 brne .L30 |
284 0200 5B9A sbi 43-0x20,3 |
285 0202 65C1 rjmp .L8 |
286 .L30: |
287 0204 5B98 cbi 43-0x20,3 |
288 0206 63C1 rjmp .L8 |
289 .L9: |
290 0208 4091 8600 lds r20,134 |
291 020c 5091 8700 lds r21,(134)+1 |
292 0210 8091 0000 lds r24,AltICR.2 |
293 0214 9091 0000 lds r25,(AltICR.2)+1 |
294 0218 481B sub r20,r24 |
295 021a 590B sbc r21,r25 |
296 021c 8091 8600 lds r24,134 |
297 0220 9091 8700 lds r25,(134)+1 |
298 0224 9093 0000 sts (AltICR.2)+1,r25 |
299 0228 8093 0000 sts AltICR.2,r24 |
300 022c CA01 movw r24,r20 |
301 022e 8D54 subi r24,lo8(-(-1101)) |
302 0230 9440 sbci r25,hi8(-(-1101)) |
303 0232 6091 0000 lds r22,index.7 |
304 0236 835F subi r24,lo8(6899) |
305 0238 9A41 sbci r25,hi8(6899) |
306 023a 08F0 brlo .+2 |
307 023c 7AC0 rjmp .L33 |
308 023e 6093 0000 sts tmpChannels,r22 |
309 0242 8091 0000 lds r24,tmpChannels |
310 0246 8430 cpi r24,lo8(4) |
311 0248 08F4 brsh .+2 |
312 024a 53C0 rjmp .L34 |
313 024c 9091 0000 lds r25,Channels |
314 0250 8091 0000 lds r24,tmpChannels |
315 0254 9817 cp r25,r24 |
316 0256 09F0 breq .+2 |
317 0258 4CC0 rjmp .L34 |
318 025a 5091 0000 lds r21,okay_cnt.8 |
319 025e 5B30 cpi r21,lo8(11) |
320 0260 08F4 brsh .+2 |
321 0262 3FC0 rjmp .L35 |
322 0264 1092 0000 sts NewPpmData,__zero_reg__ |
323 0268 1092 0000 sts index.7,__zero_reg__ |
324 026c 40E0 ldi r20,lo8(0) |
325 .L40: |
326 026e 5F31 cpi r21,lo8(31) |
327 0270 C0F0 brlo .L39 |
328 0272 E42F mov r30,r20 |
329 0274 FF27 clr r31 |
330 0276 EE0F add r30,r30 |
331 0278 FF1F adc r31,r31 |
332 027a 9F01 movw r18,r30 |
333 027c 2050 subi r18,lo8(-(old_ppm_in.5)) |
334 027e 3040 sbci r19,hi8(-(old_ppm_in.5)) |
335 0280 DF01 movw r26,r30 |
336 0282 A050 subi r26,lo8(-(PPM_in)) |
337 0284 B040 sbci r27,hi8(-(PPM_in)) |
338 0286 8D91 ld r24,X+ |
339 0288 9C91 ld r25,X |
340 028a D901 movw r26,r18 |
341 028c 8D93 st X+,r24 |
342 028e 9C93 st X,r25 |
343 0290 DF01 movw r26,r30 |
344 0292 A050 subi r26,lo8(-(PPM_diff)) |
345 0294 B040 sbci r27,hi8(-(PPM_diff)) |
346 0296 8D91 ld r24,X+ |
347 0298 9C91 ld r25,X |
348 029a E050 subi r30,lo8(-(old_ppm_diff.6)) |
349 029c F040 sbci r31,hi8(-(old_ppm_diff.6)) |
350 029e 9183 std Z+1,r25 |
351 02a0 8083 st Z,r24 |
352 .L39: |
353 02a2 E42F mov r30,r20 |
354 02a4 FF27 clr r31 |
355 02a6 EE0F add r30,r30 |
356 02a8 FF1F adc r31,r31 |
357 02aa 9F01 movw r18,r30 |
358 02ac 2050 subi r18,lo8(-(PPM_in)) |
359 02ae 3040 sbci r19,hi8(-(PPM_in)) |
360 02b0 DF01 movw r26,r30 |
361 02b2 A050 subi r26,lo8(-(ppm_in.3)) |
362 02b4 B040 sbci r27,hi8(-(ppm_in.3)) |
363 02b6 8D91 ld r24,X+ |
364 02b8 9C91 ld r25,X |
365 02ba D901 movw r26,r18 |
366 02bc 1196 adiw r26,1 |
367 02be 9C93 st X,r25 |
368 02c0 8E93 st -X,r24 |
369 02c2 DF01 movw r26,r30 |
370 02c4 A050 subi r26,lo8(-(ppm_diff.4)) |
371 02c6 B040 sbci r27,hi8(-(ppm_diff.4)) |
372 02c8 8D91 ld r24,X+ |
373 02ca 9C91 ld r25,X |
374 02cc E050 subi r30,lo8(-(PPM_diff)) |
375 02ce F040 sbci r31,hi8(-(PPM_diff)) |
376 02d0 9183 std Z+1,r25 |
377 02d2 8083 st Z,r24 |
378 02d4 842F mov r24,r20 |
379 02d6 8F5F subi r24,lo8(-(1)) |
380 02d8 482F mov r20,r24 |
381 02da 8D30 cpi r24,lo8(13) |
382 02dc 40F2 brlo .L40 |
383 02de 8093 0000 sts index.7,r24 |
384 .L35: |
385 02e2 8091 0000 lds r24,okay_cnt.8 |
386 02e6 8F3F cpi r24,lo8(-1) |
387 02e8 B9F0 breq .L42 |
388 02ea 8F5F subi r24,lo8(-(1)) |
389 02ec 8093 0000 sts okay_cnt.8,r24 |
390 02f0 13C0 rjmp .L42 |
391 .L34: |
392 02f2 8091 0000 lds r24,okay_cnt.8 |
393 02f6 8536 cpi r24,lo8(101) |
394 02f8 20F0 brlo .L43 |
395 02fa 8AE0 ldi r24,lo8(10) |
396 02fc 8093 0000 sts okay_cnt.8,r24 |
397 0300 02C0 rjmp .L44 |
398 .L43: |
399 0302 1092 0000 sts okay_cnt.8,__zero_reg__ |
400 .L44: |
401 0306 8091 0000 lds r24,PlatinenVersion |
402 030a 8A30 cpi r24,lo8(10) |
403 030c 11F0 breq .L46 |
404 030e 8431 cpi r24,lo8(20) |
405 0310 10F0 brlo .L45 |
406 .L46: |
407 0312 289A sbi 37-0x20,0 |
408 0314 01C0 rjmp .L42 |
409 .L45: |
410 0316 2898 cbi 37-0x20,0 |
411 .L42: |
412 0318 81E0 ldi r24,lo8(1) |
413 031a 8093 0000 sts index.7,r24 |
414 031e 8091 0000 lds r24,MotorenEin |
415 0322 8823 tst r24 |
416 0324 09F0 breq .+2 |
417 0326 D3C0 rjmp .L8 |
418 0328 8091 0000 lds r24,tmpChannels |
419 032c 8093 0000 sts Channels,r24 |
420 0330 CEC0 rjmp .L8 |
421 .L33: |
422 0332 6D30 cpi r22,lo8(13) |
423 0334 08F0 brlo .+2 |
424 0336 A3C0 rjmp .L50 |
425 0338 CA01 movw r24,r20 |
426 033a 8B5F subi r24,lo8(-(-251)) |
427 033c 9040 sbci r25,hi8(-(-251)) |
428 033e 845B subi r24,lo8(436) |
429 0340 9140 sbci r25,hi8(436) |
430 0342 08F0 brlo .+2 |
431 0344 7EC0 rjmp .L51 |
432 0346 425D subi r20,lo8(-(-466)) |
433 0348 5140 sbci r21,hi8(-(-466)) |
434 034a E62F mov r30,r22 |
435 034c FF27 clr r31 |
436 034e EE0F add r30,r30 |
437 0350 FF1F adc r31,r31 |
438 0352 E050 subi r30,lo8(-(ppm_in.3)) |
439 0354 F040 sbci r31,hi8(-(ppm_in.3)) |
440 0356 8081 ld r24,Z |
441 0358 9181 ldd r25,Z+1 |
442 035a FA01 movw r30,r20 |
443 035c E81B sub r30,r24 |
444 035e F90B sbc r31,r25 |
445 0360 CF01 movw r24,r30 |
446 0362 0596 adiw r24,5 |
447 0364 0B97 sbiw r24,11 |
448 0366 B0F4 brsh .L52 |
449 0368 8091 0000 lds r24,okay_cnt.8 |
450 036c 8A31 cpi r24,lo8(26) |
451 036e 20F0 brlo .L53 |
452 0370 8091 0000 lds r24,SenderOkay |
453 0374 865F subi r24,lo8(-(10)) |
454 0376 05C0 rjmp .L88 |
455 .L53: |
456 0378 8B30 cpi r24,lo8(11) |
457 037a 28F0 brlo .L54 |
458 037c 8091 0000 lds r24,SenderOkay |
459 0380 8E5F subi r24,lo8(-(2)) |
460 .L88: |
461 0382 8093 0000 sts SenderOkay,r24 |
462 .L54: |
463 0386 8091 0000 lds r24,SenderOkay |
464 038a 893C cpi r24,lo8(-55) |
465 038c 18F0 brlo .L52 |
466 038e 88EC ldi r24,lo8(-56) |
467 0390 8093 0000 sts SenderOkay,r24 |
468 .L52: |
469 0394 E62F mov r30,r22 |
470 0396 FF27 clr r31 |
471 0398 EE0F add r30,r30 |
472 039a FF1F adc r31,r31 |
473 039c E050 subi r30,lo8(-(ppm_in.3)) |
474 039e F040 sbci r31,hi8(-(ppm_in.3)) |
475 03a0 8081 ld r24,Z |
476 03a2 9181 ldd r25,Z+1 |
477 03a4 9C01 movw r18,r24 |
478 03a6 220F lsl r18 |
479 03a8 331F rol r19 |
480 03aa 280F add r18,r24 |
481 03ac 391F adc r19,r25 |
482 03ae 240F add r18,r20 |
483 03b0 351F adc r19,r21 |
484 03b2 37FF sbrs r19,7 |
485 03b4 02C0 rjmp .L57 |
486 03b6 2D5F subi r18,lo8(-(3)) |
487 03b8 3F4F sbci r19,hi8(-(3)) |
488 .L57: |
489 03ba E901 movw r28,r18 |
490 03bc D595 asr r29 |
491 03be C795 ror r28 |
492 03c0 D595 asr r29 |
493 03c2 C795 ror r28 |
494 03c4 CA01 movw r24,r20 |
495 03c6 0196 adiw r24,1 |
496 03c8 8C17 cp r24,r28 |
497 03ca 9D07 cpc r25,r29 |
498 03cc 14F4 brge .L58 |
499 03ce 2197 sbiw r28,1 |
500 03d0 06C0 rjmp .L59 |
501 .L58: |
502 03d2 4150 subi r20,lo8(-(-1)) |
503 03d4 5040 sbci r21,hi8(-(-1)) |
504 03d6 C417 cp r28,r20 |
505 03d8 D507 cpc r29,r21 |
506 03da 0CF4 brge .L59 |
507 03dc 2196 adiw r28,1 |
508 .L59: |
509 03de 8091 0000 lds r24,SenderOkay |
510 03e2 8E3B cpi r24,lo8(-66) |
511 03e4 D8F0 brlo .L61 |
512 03e6 E62F mov r30,r22 |
513 03e8 FF27 clr r31 |
514 03ea EE0F add r30,r30 |
515 03ec FF1F adc r31,r31 |
516 03ee DF01 movw r26,r30 |
517 03f0 A050 subi r26,lo8(-(ppm_in.3)) |
518 03f2 B040 sbci r27,hi8(-(ppm_in.3)) |
519 03f4 8D91 ld r24,X+ |
520 03f6 9C91 ld r25,X |
521 03f8 9E01 movw r18,r28 |
522 03fa 281B sub r18,r24 |
523 03fc 390B sbc r19,r25 |
524 03fe C901 movw r24,r18 |
525 0400 63E0 ldi r22,lo8(3) |
526 0402 70E0 ldi r23,hi8(3) |
527 0404 0E94 0000 call __divmodhi4 |
528 0408 CB01 movw r24,r22 |
529 040a 880F lsl r24 |
530 040c 991F rol r25 |
531 040e 860F add r24,r22 |
532 0410 971F adc r25,r23 |
533 0412 E050 subi r30,lo8(-(ppm_diff.4)) |
534 0414 F040 sbci r31,hi8(-(ppm_diff.4)) |
535 0416 9183 std Z+1,r25 |
536 0418 8083 st Z,r24 |
537 041a 08C0 rjmp .L62 |
538 .L61: |
539 041c E62F mov r30,r22 |
540 041e FF27 clr r31 |
541 0420 EE0F add r30,r30 |
542 0422 FF1F adc r31,r31 |
543 0424 E050 subi r30,lo8(-(ppm_diff.4)) |
544 0426 F040 sbci r31,hi8(-(ppm_diff.4)) |
545 0428 1182 std Z+1,__zero_reg__ |
546 042a 1082 st Z,__zero_reg__ |
547 .L62: |
548 042c 8091 0000 lds r24,index.7 |
549 0430 E82F mov r30,r24 |
550 0432 FF27 clr r31 |
551 0434 EE0F add r30,r30 |
552 0436 FF1F adc r31,r31 |
553 0438 E050 subi r30,lo8(-(ppm_in.3)) |
554 043a F040 sbci r31,hi8(-(ppm_in.3)) |
555 043c D183 std Z+1,r29 |
556 043e C083 st Z,r28 |
557 0440 09C0 rjmp .L63 |
558 .L51: |
559 0442 8091 0000 lds r24,PlatinenVersion |
560 0446 8A30 cpi r24,lo8(10) |
561 0448 11F0 breq .L65 |
562 044a 8431 cpi r24,lo8(20) |
563 044c 10F0 brlo .L64 |
564 .L65: |
565 044e 289A sbi 37-0x20,0 |
566 0450 01C0 rjmp .L63 |
567 .L64: |
568 0452 2898 cbi 37-0x20,0 |
569 .L63: |
570 0454 8091 0000 lds r24,PlatinenVersion |
571 0458 8431 cpi r24,lo8(20) |
572 045a 88F4 brsh .L50 |
573 045c 8091 0000 lds r24,index.7 |
574 0460 8530 cpi r24,lo8(5) |
575 0462 11F4 brne .L68 |
576 0464 5D9A sbi 43-0x20,5 |
577 0466 05C0 rjmp .L70 |
578 .L68: |
579 0468 5D98 cbi 43-0x20,5 |
580 046a 8630 cpi r24,lo8(6) |
581 046c 11F4 brne .L70 |
582 046e 5C9A sbi 43-0x20,4 |
583 0470 05C0 rjmp .L72 |
584 .L70: |
585 0472 5C98 cbi 43-0x20,4 |
586 0474 8730 cpi r24,lo8(7) |
587 0476 11F4 brne .L72 |
588 0478 5B9A sbi 43-0x20,3 |
589 047a 01C0 rjmp .L50 |
590 .L72: |
591 047c 5B98 cbi 43-0x20,3 |
592 .L50: |
593 047e 8091 0000 lds r24,index.7 |
594 0482 8431 cpi r24,lo8(20) |
595 0484 20F4 brsh .L74 |
596 0486 8F5F subi r24,lo8(-(1)) |
597 0488 8093 0000 sts index.7,r24 |
598 048c 20C0 rjmp .L8 |
599 .L74: |
600 048e 8431 cpi r24,lo8(20) |
601 0490 F1F4 brne .L8 |
602 0492 8091 0000 lds r24,PlatinenVersion |
603 0496 8A30 cpi r24,lo8(10) |
604 0498 11F0 breq .L78 |
605 049a 8431 cpi r24,lo8(20) |
606 049c 10F0 brlo .L77 |
607 .L78: |
608 049e 289A sbi 37-0x20,0 |
609 04a0 01C0 rjmp .L79 |
610 .L77: |
611 04a2 2898 cbi 37-0x20,0 |
612 .L79: |
613 04a4 8EE1 ldi r24,lo8(30) |
614 04a6 8093 0000 sts index.7,r24 |
615 04aa 2CE0 ldi r18,lo8(12) |
616 04ac C0E0 ldi r28,lo8(PPM_diff) |
617 04ae D0E0 ldi r29,hi8(PPM_diff) |
618 04b0 A0E0 ldi r26,lo8(old_ppm_in.5) |
619 04b2 B0E0 ldi r27,hi8(old_ppm_in.5) |
620 04b4 E0E0 ldi r30,lo8(PPM_in) |
621 04b6 F0E0 ldi r31,hi8(PPM_in) |
622 .L83: |
623 04b8 8D91 ld r24,X+ |
624 04ba 9D91 ld r25,X+ |
625 04bc 9183 std Z+1,r25 |
626 04be 8083 st Z,r24 |
627 04c0 3296 adiw r30,2 |
628 04c2 1982 std Y+1,__zero_reg__ |
629 04c4 1882 st Y,__zero_reg__ |
630 04c6 2296 adiw r28,2 |
631 04c8 2150 subi r18,lo8(-(-1)) |
632 04ca 27FF sbrs r18,7 |
633 04cc F5CF rjmp .L83 |
634 .L8: |
635 /* epilogue: frame size=0 */ |
636 04ce FF91 pop r31 |
637 04d0 EF91 pop r30 |
638 04d2 DF91 pop r29 |
639 04d4 CF91 pop r28 |
640 04d6 BF91 pop r27 |
641 04d8 AF91 pop r26 |
642 04da 9F91 pop r25 |
643 04dc 8F91 pop r24 |
644 04de 7F91 pop r23 |
645 04e0 6F91 pop r22 |
646 04e2 5F91 pop r21 |
647 04e4 4F91 pop r20 |
648 04e6 3F91 pop r19 |
649 04e8 2F91 pop r18 |
650 04ea 1F91 pop r17 |
651 04ec 0F91 pop r16 |
652 04ee 0F90 pop __tmp_reg__ |
653 04f0 0FBE out __SREG__,__tmp_reg__ |
654 04f2 0F90 pop __tmp_reg__ |
655 04f4 1F90 pop __zero_reg__ |
656 04f6 1895 reti |
657 /* epilogue end (size=21) */ |
658 /* function __vector_12 size 615 (573) */ |
660 .comm PPM_in,52,1 |
661 .comm PPM_diff,52,1 |
662 .comm Channels,1,1 |
663 /* File "rc.c": code 643 = 0x0283 ( 600), prologues 21, epilogues 22 */ |
8 .text |
9 .global rc_sum_init |
11 rc_sum_init: |
12 /* prologue: function */ |
13 /* frame size = 0 */ |
14 0000 80E0 ldi r24,lo8(0) |
15 0002 90E0 ldi r25,hi8(0) |
16 .L2: |
17 0004 FC01 movw r30,r24 |
18 0006 EE0F lsl r30 |
19 0008 FF1F rol r31 |
20 000a DF01 movw r26,r30 |
21 000c A050 subi r26,lo8(-(PPM_in)) |
22 000e B040 sbci r27,hi8(-(PPM_in)) |
23 0010 1196 adiw r26,1 |
24 0012 1C92 st X,__zero_reg__ |
25 0014 1E92 st -X,__zero_reg__ |
26 0016 E050 subi r30,lo8(-(PPM_diff)) |
27 0018 F040 sbci r31,hi8(-(PPM_diff)) |
28 001a 1182 std Z+1,__zero_reg__ |
29 001c 1082 st Z,__zero_reg__ |
30 001e 0196 adiw r24,1 |
31 0020 8A31 cpi r24,26 |
32 0022 9105 cpc r25,__zero_reg__ |
33 0024 01F4 brne .L2 |
34 0026 1092 0000 sts (AdNeutralGier)+1,__zero_reg__ |
35 002a 1092 0000 sts AdNeutralGier,__zero_reg__ |
36 002e 1092 0000 sts (AdNeutralRoll)+1,__zero_reg__ |
37 0032 1092 0000 sts AdNeutralRoll,__zero_reg__ |
38 0036 1092 0000 sts (AdNeutralNick)+1,__zero_reg__ |
39 003a 1092 0000 sts AdNeutralNick,__zero_reg__ |
40 /* epilogue start */ |
41 003e 0895 ret |
43 .global __vector_12 |
45 __vector_12: |
46 0040 1F92 push __zero_reg__ |
47 0042 0F92 push r0 |
48 0044 0FB6 in r0,__SREG__ |
49 0046 0F92 push r0 |
50 0048 1124 clr __zero_reg__ |
51 004a 0F93 push r16 |
52 004c 1F93 push r17 |
53 004e 2F93 push r18 |
54 0050 3F93 push r19 |
55 0052 4F93 push r20 |
56 0054 5F93 push r21 |
57 0056 6F93 push r22 |
58 0058 7F93 push r23 |
59 005a 8F93 push r24 |
60 005c 9F93 push r25 |
61 005e AF93 push r26 |
62 0060 BF93 push r27 |
63 0062 CF93 push r28 |
64 0064 DF93 push r29 |
65 0066 EF93 push r30 |
66 0068 FF93 push r31 |
67 /* prologue: Signal */ |
68 /* frame size = 0 */ |
69 006a 8091 0000 lds r24,EE_Parameter+99 |
70 006e 82FD sbrc r24,2 |
71 0070 00C0 rjmp .L6 |
72 0072 2091 8600 lds r18,134 |
73 0076 3091 8700 lds r19,(134)+1 |
74 007a 8091 0000 lds r24,AltICR.2229 |
75 007e 9091 0000 lds r25,(AltICR.2229)+1 |
76 0082 281B sub r18,r24 |
77 0084 390B sbc r19,r25 |
78 0086 8091 8600 lds r24,134 |
79 008a 9091 8700 lds r25,(134)+1 |
80 008e 9093 0000 sts (AltICR.2229)+1,r25 |
81 0092 8093 0000 sts AltICR.2229,r24 |
82 0096 C901 movw r24,r18 |
83 0098 8D54 subi r24,lo8(-(-1101)) |
84 009a 9440 sbci r25,hi8(-(-1101)) |
85 009c 0091 0000 lds r16,index.2232 |
86 00a0 1091 0000 lds r17,(index.2232)+1 |
87 00a4 835F subi r24,lo8(6899) |
88 00a6 9A41 sbci r25,hi8(6899) |
89 00a8 00F4 brsh .L7 |
90 00aa 0093 0000 sts Channels,r16 |
91 00ae 0430 cpi r16,4 |
92 00b0 1105 cpc r17,__zero_reg__ |
93 00b2 04F0 brlt .L8 |
94 00b4 1092 0000 sts NewPpmData,__zero_reg__ |
95 .L8: |
96 00b8 81E0 ldi r24,lo8(1) |
97 00ba 90E0 ldi r25,hi8(1) |
98 00bc 9093 0000 sts (index.2232)+1,r25 |
99 00c0 8093 0000 sts index.2232,r24 |
100 00c4 00C0 rjmp .L53 |
101 .L7: |
102 00c6 0D30 cpi r16,13 |
103 00c8 1105 cpc r17,__zero_reg__ |
104 00ca 04F0 brlt .+2 |
105 00cc 00C0 rjmp .L53 |
106 00ce C901 movw r24,r18 |
107 00d0 8B5F subi r24,lo8(-(-251)) |
108 00d2 9040 sbci r25,hi8(-(-251)) |
109 00d4 845B subi r24,lo8(436) |
110 00d6 9140 sbci r25,hi8(436) |
111 00d8 00F0 brlo .+2 |
112 00da 00C0 rjmp .L10 |
113 00dc E901 movw r28,r18 |
114 00de C25D subi r28,lo8(-(-466)) |
115 00e0 D140 sbci r29,hi8(-(-466)) |
116 00e2 F801 movw r30,r16 |
117 00e4 EE0F lsl r30 |
118 00e6 FF1F rol r31 |
119 00e8 E050 subi r30,lo8(-(PPM_in)) |
120 00ea F040 sbci r31,hi8(-(PPM_in)) |
121 00ec 8081 ld r24,Z |
122 00ee 9181 ldd r25,Z+1 |
123 00f0 FE01 movw r30,r28 |
124 00f2 E81B sub r30,r24 |
125 00f4 F90B sbc r31,r25 |
126 00f6 CF01 movw r24,r30 |
127 00f8 F7FF sbrs r31,7 |
128 00fa 00C0 rjmp .L12 |
129 00fc 9095 com r25 |
130 00fe 8195 neg r24 |
131 0100 9F4F sbci r25,lo8(-1) |
132 .L12: |
133 0102 0697 sbiw r24,6 |
134 0104 04F4 brge .L11 |
135 0106 8091 0000 lds r24,SenderOkay |
136 010a 883C cpi r24,lo8(-56) |
137 010c 00F4 brsh .L13 |
138 010e 8091 0000 lds r24,SenderOkay |
139 0112 865F subi r24,lo8(-(10)) |
140 0114 00C0 rjmp .L55 |
141 .L13: |
142 0116 88EC ldi r24,lo8(-56) |
143 .L55: |
144 0118 8093 0000 sts SenderOkay,r24 |
145 .L11: |
146 011c F801 movw r30,r16 |
147 011e EE0F lsl r30 |
148 0120 FF1F rol r31 |
149 0122 E050 subi r30,lo8(-(PPM_in)) |
150 0124 F040 sbci r31,hi8(-(PPM_in)) |
151 0126 2081 ld r18,Z |
152 0128 3181 ldd r19,Z+1 |
153 012a C901 movw r24,r18 |
154 012c 880F lsl r24 |
155 012e 991F rol r25 |
156 0130 820F add r24,r18 |
157 0132 931F adc r25,r19 |
158 0134 8C0F add r24,r28 |
159 0136 9D1F adc r25,r29 |
160 0138 64E0 ldi r22,lo8(4) |
161 013a 70E0 ldi r23,hi8(4) |
162 013c 0E94 0000 call __divmodhi4 |
163 0140 9B01 movw r18,r22 |
164 0142 CE01 movw r24,r28 |
165 0144 0196 adiw r24,1 |
166 0146 8617 cp r24,r22 |
167 0148 9707 cpc r25,r23 |
168 014a 04F4 brge .L14 |
169 014c 2150 subi r18,lo8(-(-1)) |
170 014e 3040 sbci r19,hi8(-(-1)) |
171 0150 00C0 rjmp .L15 |
172 .L14: |
173 0152 2197 sbiw r28,1 |
174 0154 6C17 cp r22,r28 |
175 0156 7D07 cpc r23,r29 |
176 0158 04F4 brge .L15 |
177 015a 2F5F subi r18,lo8(-(1)) |
178 015c 3F4F sbci r19,hi8(-(1)) |
179 .L15: |
180 015e 8091 0000 lds r24,SenderOkay |
181 0162 E801 movw r28,r16 |
182 0164 CC0F lsl r28 |
183 0166 DD1F rol r29 |
184 0168 833C cpi r24,lo8(-61) |
185 016a 00F0 brlo .L16 |
186 016c FE01 movw r30,r28 |
187 016e E050 subi r30,lo8(-(PPM_in)) |
188 0170 F040 sbci r31,hi8(-(PPM_in)) |
189 0172 8081 ld r24,Z |
190 0174 9181 ldd r25,Z+1 |
191 0176 A901 movw r20,r18 |
192 0178 481B sub r20,r24 |
193 017a 590B sbc r21,r25 |
194 017c CA01 movw r24,r20 |
195 017e 63E0 ldi r22,lo8(3) |
196 0180 70E0 ldi r23,hi8(3) |
197 0182 0E94 0000 call __divmodhi4 |
198 0186 CB01 movw r24,r22 |
199 0188 880F lsl r24 |
200 018a 991F rol r25 |
201 018c 860F add r24,r22 |
202 018e 971F adc r25,r23 |
203 0190 C050 subi r28,lo8(-(PPM_diff)) |
204 0192 D040 sbci r29,hi8(-(PPM_diff)) |
205 0194 9983 std Y+1,r25 |
206 0196 8883 st Y,r24 |
207 0198 00C0 rjmp .L17 |
208 .L16: |
209 019a C050 subi r28,lo8(-(PPM_diff)) |
210 019c D040 sbci r29,hi8(-(PPM_diff)) |
211 019e 1982 std Y+1,__zero_reg__ |
212 01a0 1882 st Y,__zero_reg__ |
213 .L17: |
214 01a2 F801 movw r30,r16 |
215 01a4 EE0F lsl r30 |
216 01a6 FF1F rol r31 |
217 01a8 E050 subi r30,lo8(-(PPM_in)) |
218 01aa F040 sbci r31,hi8(-(PPM_in)) |
219 01ac 3183 std Z+1,r19 |
220 01ae 2083 st Z,r18 |
221 .L10: |
222 01b0 F801 movw r30,r16 |
223 01b2 3196 adiw r30,1 |
224 01b4 F093 0000 sts (index.2232)+1,r31 |
225 01b8 E093 0000 sts index.2232,r30 |
226 01bc 8091 0000 lds r24,PlatinenVersion |
227 01c0 8431 cpi r24,lo8(20) |
228 01c2 00F0 brlo .+2 |
229 01c4 00C0 rjmp .L53 |
230 01c6 E530 cpi r30,5 |
231 01c8 F105 cpc r31,__zero_reg__ |
232 01ca 01F4 brne .L18 |
233 01cc 5D9A sbi 43-32,5 |
234 01ce 00C0 rjmp .L19 |
235 .L18: |
236 01d0 5D98 cbi 43-32,5 |
237 01d2 E630 cpi r30,6 |
238 01d4 F105 cpc r31,__zero_reg__ |
239 01d6 01F4 brne .L19 |
240 01d8 5C9A sbi 43-32,4 |
241 01da 00C0 rjmp .L20 |
242 .L19: |
243 01dc 5C98 cbi 43-32,4 |
244 01de 3797 sbiw r30,7 |
245 01e0 01F4 brne .L20 |
246 01e2 5B9A sbi 43-32,3 |
247 01e4 00C0 rjmp .L53 |
248 .L20: |
249 01e6 5B98 cbi 43-32,3 |
250 01e8 00C0 rjmp .L53 |
251 .L6: |
252 01ea 2091 8600 lds r18,134 |
253 01ee 3091 8700 lds r19,(134)+1 |
254 01f2 8091 0000 lds r24,AltICR.2233 |
255 01f6 9091 0000 lds r25,(AltICR.2233)+1 |
256 01fa 281B sub r18,r24 |
257 01fc 390B sbc r19,r25 |
258 01fe 8091 8600 lds r24,134 |
259 0202 9091 8700 lds r25,(134)+1 |
260 0206 9093 0000 sts (AltICR.2233)+1,r25 |
261 020a 8093 0000 sts AltICR.2233,r24 |
262 020e C901 movw r24,r18 |
263 0210 8D54 subi r24,lo8(-(-1101)) |
264 0212 9440 sbci r25,hi8(-(-1101)) |
265 0214 4091 0000 lds r20,index.2240 |
266 0218 835F subi r24,lo8(6899) |
267 021a 9A41 sbci r25,hi8(6899) |
268 021c 00F0 brlo .+2 |
269 021e 00C0 rjmp .L21 |
270 0220 4093 0000 sts tmpChannels,r20 |
271 0224 8091 0000 lds r24,tmpChannels |
272 0228 8430 cpi r24,lo8(4) |
273 022a 00F4 brsh .+2 |
274 022c 00C0 rjmp .L22 |
275 022e 9091 0000 lds r25,Channels |
276 0232 8091 0000 lds r24,tmpChannels |
277 0236 9817 cp r25,r24 |
278 0238 01F0 breq .+2 |
279 023a 00C0 rjmp .L22 |
280 023c 3091 0000 lds r19,okay_cnt.2241 |
281 0240 3B30 cpi r19,lo8(11) |
282 0242 00F0 brlo .L23 |
283 0244 1092 0000 sts NewPpmData,__zero_reg__ |
284 0248 20E0 ldi r18,lo8(0) |
285 024a 00C0 rjmp .L24 |
286 .L26: |
287 024c 3F31 cpi r19,lo8(31) |
288 024e 00F0 brlo .L25 |
289 0250 E22F mov r30,r18 |
290 0252 F0E0 ldi r31,lo8(0) |
291 0254 EE0F lsl r30 |
292 0256 FF1F rol r31 |
293 0258 DF01 movw r26,r30 |
294 025a A050 subi r26,lo8(-(PPM_in)) |
295 025c B040 sbci r27,hi8(-(PPM_in)) |
296 025e 8D91 ld r24,X+ |
297 0260 9C91 ld r25,X |
298 0262 DF01 movw r26,r30 |
299 0264 A050 subi r26,lo8(-(old_ppm_in.2236)) |
300 0266 B040 sbci r27,hi8(-(old_ppm_in.2236)) |
301 0268 8D93 st X+,r24 |
302 026a 9C93 st X,r25 |
303 026c DF01 movw r26,r30 |
304 026e A050 subi r26,lo8(-(PPM_diff)) |
305 0270 B040 sbci r27,hi8(-(PPM_diff)) |
306 0272 8D91 ld r24,X+ |
307 0274 9C91 ld r25,X |
308 0276 E050 subi r30,lo8(-(old_ppm_diff.2237)) |
309 0278 F040 sbci r31,hi8(-(old_ppm_diff.2237)) |
310 027a 9183 std Z+1,r25 |
311 027c 8083 st Z,r24 |
312 .L25: |
313 027e E22F mov r30,r18 |
314 0280 F0E0 ldi r31,lo8(0) |
315 0282 EE0F lsl r30 |
316 0284 FF1F rol r31 |
317 0286 DF01 movw r26,r30 |
318 0288 A050 subi r26,lo8(-(ppm_in.2234)) |
319 028a B040 sbci r27,hi8(-(ppm_in.2234)) |
320 028c 8D91 ld r24,X+ |
321 028e 9C91 ld r25,X |
322 0290 DF01 movw r26,r30 |
323 0292 A050 subi r26,lo8(-(PPM_in)) |
324 0294 B040 sbci r27,hi8(-(PPM_in)) |
325 0296 1196 adiw r26,1 |
326 0298 9C93 st X,r25 |
327 029a 8E93 st -X,r24 |
328 029c DF01 movw r26,r30 |
329 029e A050 subi r26,lo8(-(ppm_diff.2235)) |
330 02a0 B040 sbci r27,hi8(-(ppm_diff.2235)) |
331 02a2 8D91 ld r24,X+ |
332 02a4 9C91 ld r25,X |
333 02a6 E050 subi r30,lo8(-(PPM_diff)) |
334 02a8 F040 sbci r31,hi8(-(PPM_diff)) |
335 02aa 9183 std Z+1,r25 |
336 02ac 8083 st Z,r24 |
337 02ae 2F5F subi r18,lo8(-(1)) |
338 .L24: |
339 02b0 2D30 cpi r18,lo8(13) |
340 02b2 00F0 brlo .L26 |
341 02b4 3F3F cpi r19,lo8(-1) |
342 02b6 01F0 breq .L27 |
343 .L23: |
344 02b8 3F5F subi r19,lo8(-(1)) |
345 02ba 3093 0000 sts okay_cnt.2241,r19 |
346 02be 00C0 rjmp .L27 |
347 .L22: |
348 02c0 8091 0000 lds r24,okay_cnt.2241 |
349 02c4 8536 cpi r24,lo8(101) |
350 02c6 00F0 brlo .L28 |
351 02c8 8AE0 ldi r24,lo8(10) |
352 02ca 8093 0000 sts okay_cnt.2241,r24 |
353 02ce 00C0 rjmp .L29 |
354 .L28: |
355 02d0 1092 0000 sts okay_cnt.2241,__zero_reg__ |
356 .L29: |
357 02d4 8091 0000 lds r24,PlatinenVersion |
358 02d8 8A30 cpi r24,lo8(10) |
359 02da 01F0 breq .L30 |
360 02dc 8431 cpi r24,lo8(20) |
361 02de 00F0 brlo .L31 |
362 .L30: |
363 02e0 289A sbi 37-32,0 |
364 02e2 00C0 rjmp .L27 |
365 .L31: |
366 02e4 2898 cbi 37-32,0 |
367 .L27: |
368 02e6 81E0 ldi r24,lo8(1) |
369 02e8 8093 0000 sts index.2240,r24 |
370 02ec 8091 0000 lds r24,MotorenEin |
371 02f0 8823 tst r24 |
372 02f2 01F0 breq .+2 |
373 02f4 00C0 rjmp .L53 |
374 02f6 8091 0000 lds r24,tmpChannels |
375 02fa 8093 0000 sts Channels,r24 |
376 02fe 00C0 rjmp .L53 |
377 .L21: |
378 0300 4D30 cpi r20,lo8(13) |
379 0302 00F0 brlo .+2 |
380 0304 00C0 rjmp .L32 |
381 0306 C901 movw r24,r18 |
382 0308 8B5F subi r24,lo8(-(-251)) |
383 030a 9040 sbci r25,hi8(-(-251)) |
384 030c 845B subi r24,lo8(436) |
385 030e 9140 sbci r25,hi8(436) |
386 0310 00F0 brlo .+2 |
387 0312 00C0 rjmp .L33 |
388 0314 E901 movw r28,r18 |
389 0316 C25D subi r28,lo8(-(-466)) |
390 0318 D140 sbci r29,hi8(-(-466)) |
391 031a 042F mov r16,r20 |
392 031c 10E0 ldi r17,lo8(0) |
393 031e F801 movw r30,r16 |
394 0320 EE0F lsl r30 |
395 0322 FF1F rol r31 |
396 0324 E050 subi r30,lo8(-(ppm_in.2234)) |
397 0326 F040 sbci r31,hi8(-(ppm_in.2234)) |
398 0328 0190 ld __tmp_reg__,Z+ |
399 032a F081 ld r31,Z |
400 032c E02D mov r30,__tmp_reg__ |
401 032e CE01 movw r24,r28 |
402 0330 8E1B sub r24,r30 |
403 0332 9F0B sbc r25,r31 |
404 0334 0596 adiw r24,5 |
405 0336 0B97 sbiw r24,11 |
406 0338 00F4 brsh .L34 |
407 033a 8091 0000 lds r24,okay_cnt.2241 |
408 033e 8A31 cpi r24,lo8(26) |
409 0340 00F0 brlo .L35 |
410 0342 8091 0000 lds r24,SenderOkay |
411 0346 865F subi r24,lo8(-(10)) |
412 0348 00C0 rjmp .L56 |
413 .L35: |
414 034a 8B30 cpi r24,lo8(11) |
415 034c 00F0 brlo .L36 |
416 034e 8091 0000 lds r24,SenderOkay |
417 0352 8E5F subi r24,lo8(-(2)) |
418 .L56: |
419 0354 8093 0000 sts SenderOkay,r24 |
420 .L36: |
421 0358 8091 0000 lds r24,SenderOkay |
422 035c 893C cpi r24,lo8(-55) |
423 035e 00F0 brlo .L34 |
424 0360 88EC ldi r24,lo8(-56) |
425 0362 8093 0000 sts SenderOkay,r24 |
426 .L34: |
427 0366 CF01 movw r24,r30 |
428 0368 880F lsl r24 |
429 036a 991F rol r25 |
430 036c 8E0F add r24,r30 |
431 036e 9F1F adc r25,r31 |
432 0370 8C0F add r24,r28 |
433 0372 9D1F adc r25,r29 |
434 0374 64E0 ldi r22,lo8(4) |
435 0376 70E0 ldi r23,hi8(4) |
436 0378 0E94 0000 call __divmodhi4 |
437 037c 9B01 movw r18,r22 |
438 037e CE01 movw r24,r28 |
439 0380 0196 adiw r24,1 |
440 0382 8617 cp r24,r22 |
441 0384 9707 cpc r25,r23 |
442 0386 04F4 brge .L37 |
443 0388 2150 subi r18,lo8(-(-1)) |
444 038a 3040 sbci r19,hi8(-(-1)) |
445 038c 00C0 rjmp .L38 |
446 .L37: |
447 038e 2197 sbiw r28,1 |
448 0390 6C17 cp r22,r28 |
449 0392 7D07 cpc r23,r29 |
450 0394 04F4 brge .L38 |
451 0396 2F5F subi r18,lo8(-(1)) |
452 0398 3F4F sbci r19,hi8(-(1)) |
453 .L38: |
454 039a 8091 0000 lds r24,SenderOkay |
455 039e E801 movw r28,r16 |
456 03a0 CC0F lsl r28 |
457 03a2 DD1F rol r29 |
458 03a4 8E3B cpi r24,lo8(-66) |
459 03a6 00F0 brlo .L39 |
460 03a8 C050 subi r28,lo8(-(ppm_diff.2235)) |
461 03aa D040 sbci r29,hi8(-(ppm_diff.2235)) |
462 03ac C901 movw r24,r18 |
463 03ae 8E1B sub r24,r30 |
464 03b0 9F0B sbc r25,r31 |
465 03b2 63E0 ldi r22,lo8(3) |
466 03b4 70E0 ldi r23,hi8(3) |
467 03b6 0E94 0000 call __divmodhi4 |
468 03ba CB01 movw r24,r22 |
469 03bc 880F lsl r24 |
470 03be 991F rol r25 |
471 03c0 860F add r24,r22 |
472 03c2 971F adc r25,r23 |
473 03c4 9983 std Y+1,r25 |
474 03c6 8883 st Y,r24 |
475 03c8 00C0 rjmp .L40 |
476 .L39: |
477 03ca C050 subi r28,lo8(-(ppm_diff.2235)) |
478 03cc D040 sbci r29,hi8(-(ppm_diff.2235)) |
479 03ce 1982 std Y+1,__zero_reg__ |
480 03d0 1882 st Y,__zero_reg__ |
481 .L40: |
482 03d2 000F lsl r16 |
483 03d4 111F rol r17 |
484 03d6 0050 subi r16,lo8(-(ppm_in.2234)) |
485 03d8 1040 sbci r17,hi8(-(ppm_in.2234)) |
486 03da F801 movw r30,r16 |
487 03dc 3183 std Z+1,r19 |
488 03de 2083 st Z,r18 |
489 03e0 00C0 rjmp .L41 |
490 .L33: |
491 03e2 8091 0000 lds r24,PlatinenVersion |
492 03e6 8A30 cpi r24,lo8(10) |
493 03e8 01F0 breq .L42 |
494 03ea 8431 cpi r24,lo8(20) |
495 03ec 00F0 brlo .L43 |
496 .L42: |
497 03ee 289A sbi 37-32,0 |
498 03f0 00C0 rjmp .L41 |
499 .L43: |
500 03f2 2898 cbi 37-32,0 |
501 .L41: |
502 03f4 8091 0000 lds r24,PlatinenVersion |
503 03f8 8431 cpi r24,lo8(20) |
504 03fa 00F4 brsh .L44 |
505 03fc 4530 cpi r20,lo8(5) |
506 03fe 01F4 brne .L45 |
507 0400 5D9A sbi 43-32,5 |
508 0402 00C0 rjmp .L46 |
509 .L45: |
510 0404 5D98 cbi 43-32,5 |
511 0406 4630 cpi r20,lo8(6) |
512 0408 01F4 brne .L46 |
513 040a 5C9A sbi 43-32,4 |
514 040c 00C0 rjmp .L47 |
515 .L46: |
516 040e 5C98 cbi 43-32,4 |
517 0410 4730 cpi r20,lo8(7) |
518 0412 01F4 brne .L47 |
519 0414 5B9A sbi 43-32,3 |
520 0416 00C0 rjmp .L44 |
521 .L47: |
522 0418 5B98 cbi 43-32,3 |
523 041a 00C0 rjmp .L44 |
524 .L32: |
525 041c 4431 cpi r20,lo8(20) |
526 041e 00F4 brsh .L48 |
527 .L44: |
528 0420 4F5F subi r20,lo8(-(1)) |
529 0422 4093 0000 sts index.2240,r20 |
530 0426 00C0 rjmp .L53 |
531 .L48: |
532 0428 4431 cpi r20,lo8(20) |
533 042a 01F4 brne .L53 |
534 042c 8091 0000 lds r24,PlatinenVersion |
535 0430 8A30 cpi r24,lo8(10) |
536 0432 01F0 breq .L49 |
537 0434 8431 cpi r24,lo8(20) |
538 0436 00F0 brlo .L50 |
539 .L49: |
540 0438 289A sbi 37-32,0 |
541 043a 00C0 rjmp .L51 |
542 .L50: |
543 043c 2898 cbi 37-32,0 |
544 .L51: |
545 043e 8EE1 ldi r24,lo8(30) |
546 0440 8093 0000 sts index.2240,r24 |
547 0444 C0E0 ldi r28,lo8(old_ppm_in.2236) |
548 0446 D0E0 ldi r29,hi8(old_ppm_in.2236) |
549 0448 20E0 ldi r18,lo8(0) |
550 044a 30E0 ldi r19,hi8(0) |
551 .L52: |
552 044c 8991 ld r24,Y+ |
553 044e 9991 ld r25,Y+ |
554 0450 F901 movw r30,r18 |
555 0452 EE0F lsl r30 |
556 0454 FF1F rol r31 |
557 0456 DF01 movw r26,r30 |
558 0458 A050 subi r26,lo8(-(PPM_in)) |
559 045a B040 sbci r27,hi8(-(PPM_in)) |
560 045c 1196 adiw r26,1 |
561 045e 9C93 st X,r25 |
562 0460 8E93 st -X,r24 |
563 0462 E050 subi r30,lo8(-(PPM_diff)) |
564 0464 F040 sbci r31,hi8(-(PPM_diff)) |
565 0466 1182 std Z+1,__zero_reg__ |
566 0468 1082 st Z,__zero_reg__ |
567 046a 2F5F subi r18,lo8(-(1)) |
568 046c 3F4F sbci r19,hi8(-(1)) |
569 046e 2D30 cpi r18,13 |
570 0470 3105 cpc r19,__zero_reg__ |
571 0472 01F4 brne .L52 |
572 .L53: |
573 /* epilogue start */ |
574 0474 FF91 pop r31 |
575 0476 EF91 pop r30 |
576 0478 DF91 pop r29 |
577 047a CF91 pop r28 |
578 047c BF91 pop r27 |
579 047e AF91 pop r26 |
580 0480 9F91 pop r25 |
581 0482 8F91 pop r24 |
582 0484 7F91 pop r23 |
583 0486 6F91 pop r22 |
584 0488 5F91 pop r21 |
585 048a 4F91 pop r20 |
586 048c 3F91 pop r19 |
587 048e 2F91 pop r18 |
588 0490 1F91 pop r17 |
589 0492 0F91 pop r16 |
590 0494 0F90 pop r0 |
591 0496 0FBE out __SREG__,r0 |
592 0498 0F90 pop r0 |
593 049a 1F90 pop __zero_reg__ |
594 049c 1895 reti |
596 .global tmpChannels |
597 .global tmpChannels |
598 .section .bss |
601 tmpChannels: |
602 0000 00 .skip 1,0 |
603 .global NewPpmData |
604 .data |
607 NewPpmData: |
608 0000 01 .byte 1 |
609 .lcomm okay_cnt.2241,1 |
610 .lcomm index.2240,1 |
611 .lcomm old_ppm_diff.2237,26 |
612 .lcomm old_ppm_in.2236,26 |
613 .lcomm ppm_diff.2235,26 |
614 .lcomm ppm_in.2234,26 |
615 .lcomm AltICR.2233,2 |
616 .lcomm index.2232,2 |
617 .lcomm AltICR.2229,2 |
618 .comm PPM_in,52,1 |
619 .comm PPM_diff,52,1 |
620 .comm Channels,1,1 |
621 .global __do_copy_data |
622 .global __do_clear_bss |
DEFINED SYMBOLS |
*ABS*:00000000 rc.c |
C:\Users\Arthur-P\AppData\Local\Temp/cc21baaa.s:3 *ABS*:0000003f __SREG__ |
C:\Users\Arthur-P\AppData\Local\Temp/cc21baaa.s:4 *ABS*:0000003e __SP_H__ |
C:\Users\Arthur-P\AppData\Local\Temp/cc21baaa.s:5 *ABS*:0000003d __SP_L__ |
C:\Users\Arthur-P\AppData\Local\Temp/cc21baaa.s:6 *ABS*:00000000 __tmp_reg__ |
C:\Users\Arthur-P\AppData\Local\Temp/cc21baaa.s:7 *ABS*:00000001 __zero_reg__ |
C:\Users\Arthur-P\AppData\Local\Temp/cc21baaa.s:14 .data:00000000 NewPpmData |
C:\Users\Arthur-P\AppData\Local\Temp/cc21baaa.s:21 .bss:00000000 tmpChannels |
C:\Users\Arthur-P\AppData\Local\Temp/cc21baaa.s:26 .text:00000000 rc_sum_init |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccRlEfUb.s:2 *ABS*:0000003f __SREG__ |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccRlEfUb.s:3 *ABS*:0000003e __SP_H__ |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccRlEfUb.s:4 *ABS*:0000003d __SP_L__ |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccRlEfUb.s:5 *ABS*:00000034 __CCP__ |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccRlEfUb.s:6 *ABS*:00000000 __tmp_reg__ |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccRlEfUb.s:7 *ABS*:00000001 __zero_reg__ |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccRlEfUb.s:11 .text:00000000 rc_sum_init |
*COM*:00000034 PPM_in |
*COM*:00000034 PPM_diff |
*COM*:00000034 PPM_in |
.bss:00000001 AltICR.0 |
C:\Users\Arthur-P\AppData\Local\Temp/cc21baaa.s:56 .bss:00000003 index.1 |
C:\Users\Arthur-P\AppData\Local\Temp/cc21baaa.s:57 .bss:00000005 AltICR.2 |
C:\Users\Arthur-P\AppData\Local\Temp/cc21baaa.s:58 .bss:00000007 ppm_in.3 |
C:\Users\Arthur-P\AppData\Local\Temp/cc21baaa.s:59 .bss:00000021 ppm_diff.4 |
C:\Users\Arthur-P\AppData\Local\Temp/cc21baaa.s:60 .bss:0000003b old_ppm_in.5 |
C:\Users\Arthur-P\AppData\Local\Temp/cc21baaa.s:61 .bss:00000055 old_ppm_diff.6 |
C:\Users\Arthur-P\AppData\Local\Temp/cc21baaa.s:62 .bss:0000006f index.7 |
C:\Users\Arthur-P\AppData\Local\Temp/cc21baaa.s:63 .bss:00000070 okay_cnt.8 |
C:\Users\Arthur-P\AppData\Local\Temp/cc21baaa.s:67 .text:00000038 __vector_12 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccRlEfUb.s:45 .text:00000040 __vector_12 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccRlEfUb.s:616 .bss:0000006f AltICR.2229 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccRlEfUb.s:615 .bss:0000006d index.2232 |
*COM*:00000001 Channels |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccRlEfUb.s:607 .data:00000000 NewPpmData |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccRlEfUb.s:614 .bss:0000006b AltICR.2233 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccRlEfUb.s:609 .bss:00000002 index.2240 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccRlEfUb.s:601 .bss:00000000 tmpChannels |
.bss:00000001 okay_cnt.2241 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccRlEfUb.s:611 .bss:0000001d old_ppm_in.2236 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccRlEfUb.s:610 .bss:00000003 old_ppm_diff.2237 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccRlEfUb.s:613 .bss:00000051 ppm_in.2234 |
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccRlEfUb.s:612 .bss:00000037 ppm_diff.2235 |
|
UNDEFINED SYMBOLS |
__do_copy_data |
__do_clear_bss |
AdNeutralGier |
AdNeutralRoll |
AdNeutralNick |
688,3 → 646,5 |
__divmodhi4 |
PlatinenVersion |
MotorenEin |
__do_copy_data |
__do_clear_bss |