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