Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 1788 → Rev 1789

/branches/V0.80g-Arthur-P1/Spektrum.lst
1,644 → 1,633
1 .file "Spektrum.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 SpektrumTimer
11 .global SpektrumTimer
12 .section .bss
15 SpektrumTimer:
16 0000 00 .skip 1,0
17 .text
18 .global SpektrumUartInit
20 SpektrumUartInit:
21 /* prologue: frame size=0 */
22 /* prologue end (size=0) */
23 0000 4FB7 in r20,95-0x20
24 0002 24E1 ldi r18,lo8(20)
25 0004 30E0 ldi r19,hi8(20)
26 /* #APP */
27 0006 F894 cli
28 /* #NOAPP */
29 0008 8091 C900 lds r24,201
30 000c 8F77 andi r24,lo8(127)
31 000e 8093 C900 sts 201,r24
32 0012 8091 C900 lds r24,201
33 0016 8F7B andi r24,lo8(-65)
34 0018 8093 C900 sts 201,r24
35 001c 8091 C900 lds r24,201
36 0020 8F7D andi r24,lo8(-33)
37 0022 8093 C900 sts 201,r24
38 0026 5A9A sbi 43-0x20,2
39 0028 5298 cbi 42-0x20,2
40 002a 5B9A sbi 43-0x20,3
41 002c 539A sbi 42-0x20,3
42 002e 832F mov r24,r19
43 0030 9927 clr r25
44 0032 8093 CD00 sts 205,r24
45 0036 2093 CC00 sts 204,r18
46 003a 8091 C800 lds r24,200
47 003e 8260 ori r24,lo8(2)
48 0040 8093 C800 sts 200,r24
49 0044 80E1 ldi r24,lo8(16)
50 0046 8093 C900 sts 201,r24
51 004a 8091 CA00 lds r24,202
52 004e 8F77 andi r24,lo8(127)
53 0050 8093 CA00 sts 202,r24
54 0054 8091 CA00 lds r24,202
55 0058 8F7B andi r24,lo8(-65)
56 005a 8093 CA00 sts 202,r24
57 005e 8091 CA00 lds r24,202
58 0062 8F7D andi r24,lo8(-33)
59 0064 8093 CA00 sts 202,r24
60 0068 8091 CA00 lds r24,202
61 006c 8F7E andi r24,lo8(-17)
62 006e 8093 CA00 sts 202,r24
63 0072 8091 CA00 lds r24,202
64 0076 877F andi r24,lo8(-9)
65 0078 8093 CA00 sts 202,r24
66 007c 8091 C900 lds r24,201
67 0080 8B7F andi r24,lo8(-5)
68 0082 8093 C900 sts 201,r24
69 0086 8091 CA00 lds r24,202
70 008a 8460 ori r24,lo8(4)
71 008c 8093 CA00 sts 202,r24
72 0090 8091 CA00 lds r24,202
73 0094 8260 ori r24,lo8(2)
74 0096 8093 CA00 sts 202,r24
75 .L7:
76 009a 8091 C800 lds r24,200
77 009e 87FF sbrs r24,7
78 00a0 03C0 rjmp .L6
79 00a2 8091 CE00 lds r24,206
80 00a6 F9CF rjmp .L7
81 .L6:
82 00a8 8091 C900 lds r24,201
83 00ac 8068 ori r24,lo8(-128)
84 00ae 8093 C900 sts 201,r24
85 00b2 4FBF out 95-0x20,r20
86 /* epilogue: frame size=0 */
87 00b4 0895 ret
88 /* epilogue end (size=1) */
89 /* function SpektrumUartInit size 92 (91) */
91 .section .progmem.data,"a",@progbits
94 __c.5:
95 0000 0A0D 506C .string "\n\rPlease connect Spektrum receiver for binding NOW..."
95 6561 7365
95 2063 6F6E
95 6E65 6374
95 2053 7065
98 __c.6:
99 0036 6F6B 2E0A .string "ok.\n\r"
99 0D00
102 __c.7:
103 003c 5469 6D65 .string "Timeout.\n\r"
103 6F75 742E
103 0A0D 00
104 .text
105 .global SpektrumBinding
107 SpektrumBinding:
108 /* prologue: frame size=0 */
109 00b6 FF92 push r15
110 00b8 0F93 push r16
111 00ba 1F93 push r17
112 00bc CF93 push r28
113 00be DF93 push r29
114 /* prologue end (size=5) */
115 00c0 80E1 ldi r24,lo8(10000)
116 00c2 97E2 ldi r25,hi8(10000)
117 00c4 0E94 0000 call SetDelay
118 00c8 EC01 movw r28,r24
119 00ca FF24 clr r15
120 00cc 8091 C900 lds r24,201
121 00d0 8F77 andi r24,lo8(127)
122 00d2 8093 C900 sts 201,r24
123 00d6 8091 C900 lds r24,201
124 00da 8F7E andi r24,lo8(-17)
125 00dc 8093 C900 sts 201,r24
126 00e0 5A98 cbi 43-0x20,2
127 00e2 80E0 ldi r24,lo8(__c.5)
128 00e4 90E0 ldi r25,hi8(__c.5)
129 00e6 9F93 push r25
130 00e8 8F93 push r24
131 00ea 00E0 ldi r16,lo8(pm(uart_putchar))
132 00ec 10E0 ldi r17,hi8(pm(uart_putchar))
133 00ee 1F93 push r17
134 00f0 0F93 push r16
135 00f2 E091 0000 lds r30,_printf_P
136 00f6 F091 0000 lds r31,(_printf_P)+1
137 00fa 0995 icall
138 00fc 0F90 pop __tmp_reg__
139 00fe 0F90 pop __tmp_reg__
140 0100 0F90 pop __tmp_reg__
141 0102 0F90 pop __tmp_reg__
142 0104 02C0 rjmp .L9
143 .L12:
144 0106 4A99 sbic 41-0x20,2
145 0108 6CC0 rjmp .L96
146 .L9:
147 010a CE01 movw r24,r28
148 010c 0E94 0000 call CheckDelay
149 0110 8823 tst r24
150 0112 C9F3 breq .L12
151 .L10:
152 0114 E091 0000 lds r30,_printf_P
153 0118 F091 0000 lds r31,(_printf_P)+1
154 011c FF20 tst r15
155 011e 09F4 brne .+2
156 0120 68C0 rjmp .L13
157 0122 80E0 ldi r24,lo8(__c.6)
158 0124 90E0 ldi r25,hi8(__c.6)
159 0126 9F93 push r25
160 0128 8F93 push r24
161 012a 1F93 push r17
162 012c 0F93 push r16
163 012e 0995 icall
164 0130 529A sbi 42-0x20,2
165 0132 0F90 pop __tmp_reg__
166 0134 0F90 pop __tmp_reg__
167 0136 0F90 pop __tmp_reg__
168 0138 0F90 pop __tmp_reg__
169 .L14:
170 013a CE01 movw r24,r28
171 013c 0E94 0000 call CheckDelay
172 0140 8823 tst r24
173 0142 D9F3 breq .L14
174 0144 83E6 ldi r24,lo8(99)
175 0146 90E0 ldi r25,hi8(99)
176 .L20:
177 0148 5A9A sbi 43-0x20,2
178 014a 0197 sbiw r24,1
179 014c 97FF sbrs r25,7
180 014e FCCF rjmp .L20
181 0150 8FE8 ldi r24,lo8(399)
182 0152 91E0 ldi r25,hi8(399)
183 .L24:
184 0154 5A98 cbi 43-0x20,2
185 0156 0197 sbiw r24,1
186 0158 97FF sbrs r25,7
187 015a FCCF rjmp .L24
188 015c 89E0 ldi r24,lo8(9)
189 015e 90E0 ldi r25,hi8(9)
190 .L28:
191 0160 5A9A sbi 43-0x20,2
192 0162 0197 sbiw r24,1
193 0164 97FF sbrs r25,7
194 0166 FCCF rjmp .L28
195 0168 89E0 ldi r24,lo8(9)
196 016a 90E0 ldi r25,hi8(9)
197 .L32:
198 016c 5A98 cbi 43-0x20,2
199 016e 0197 sbiw r24,1
200 0170 97FF sbrs r25,7
201 0172 FCCF rjmp .L32
202 0174 8FE8 ldi r24,lo8(399)
203 0176 91E0 ldi r25,hi8(399)
204 .L36:
205 0178 5A9A sbi 43-0x20,2
206 017a 0197 sbiw r24,1
207 017c 97FF sbrs r25,7
208 017e FCCF rjmp .L36
209 0180 8FE8 ldi r24,lo8(399)
210 0182 91E0 ldi r25,hi8(399)
211 .L40:
212 0184 5A98 cbi 43-0x20,2
213 0186 0197 sbiw r24,1
214 0188 97FF sbrs r25,7
215 018a FCCF rjmp .L40
216 018c 89E0 ldi r24,lo8(9)
217 018e 90E0 ldi r25,hi8(9)
218 .L44:
219 0190 5A9A sbi 43-0x20,2
220 0192 0197 sbiw r24,1
221 0194 97FF sbrs r25,7
222 0196 FCCF rjmp .L44
223 0198 89E0 ldi r24,lo8(9)
224 019a 90E0 ldi r25,hi8(9)
225 .L48:
226 019c 5A98 cbi 43-0x20,2
227 019e 0197 sbiw r24,1
228 01a0 97FF sbrs r25,7
229 01a2 FCCF rjmp .L48
230 01a4 8FE8 ldi r24,lo8(399)
231 01a6 91E0 ldi r25,hi8(399)
232 .L52:
233 01a8 5A9A sbi 43-0x20,2
234 01aa 0197 sbiw r24,1
235 01ac 97FF sbrs r25,7
236 01ae FCCF rjmp .L52
237 01b0 8FE8 ldi r24,lo8(399)
238 01b2 91E0 ldi r25,hi8(399)
239 .L56:
240 01b4 5A98 cbi 43-0x20,2
241 01b6 0197 sbiw r24,1
242 01b8 97FF sbrs r25,7
243 01ba FCCF rjmp .L56
244 01bc 89E0 ldi r24,lo8(9)
245 01be 90E0 ldi r25,hi8(9)
246 .L60:
247 01c0 5A9A sbi 43-0x20,2
248 01c2 0197 sbiw r24,1
249 01c4 97FF sbrs r25,7
250 01c6 FCCF rjmp .L60
251 01c8 89E0 ldi r24,lo8(9)
252 01ca 90E0 ldi r25,hi8(9)
253 .L64:
254 01cc 5A98 cbi 43-0x20,2
255 01ce 0197 sbiw r24,1
256 01d0 97FF sbrs r25,7
257 01d2 FCCF rjmp .L64
258 01d4 8FE8 ldi r24,lo8(399)
259 01d6 91E0 ldi r25,hi8(399)
260 .L68:
261 01d8 5A9A sbi 43-0x20,2
262 01da 0197 sbiw r24,1
263 01dc 97FF sbrs r25,7
264 01de FCCF rjmp .L68
265 01e0 13C0 rjmp .L69
266 .L96:
267 01e2 8AE5 ldi r24,lo8(90)
268 01e4 90E0 ldi r25,hi8(90)
269 01e6 0E94 0000 call SetDelay
270 01ea EC01 movw r28,r24
271 01ec 91E0 ldi r25,lo8(1)
272 01ee F92E mov r15,r25
273 01f0 91CF rjmp .L10
274 .L13:
275 01f2 80E0 ldi r24,lo8(__c.7)
276 01f4 90E0 ldi r25,hi8(__c.7)
277 01f6 9F93 push r25
278 01f8 8F93 push r24
279 01fa 1F93 push r17
280 01fc 0F93 push r16
281 01fe 0995 icall
282 0200 0F90 pop __tmp_reg__
283 0202 0F90 pop __tmp_reg__
284 0204 0F90 pop __tmp_reg__
285 0206 0F90 pop __tmp_reg__
286 .L69:
287 0208 5298 cbi 42-0x20,2
288 020a 5A98 cbi 43-0x20,2
289 020c 0E94 0000 call SpektrumUartInit
290 /* epilogue: frame size=0 */
291 0210 E5E0 ldi r30,5
292 0212 CDB7 in r28,__SP_L__
293 0214 DEB7 in r29,__SP_H__
294 0216 0C94 0000 jmp __epilogue_restores__+26
295 /* epilogue end (size=5) */
296 /* function SpektrumBinding size 178 (168) */
298 .lcomm Sync.0,1
299 .lcomm FrameCnt.1,1
300 .lcomm ByteHigh.2,1
301 .data
304 ReSync.3:
305 0000 01 .byte 1
306 .lcomm Frame2.4,1
307 .text
308 .global SpektrumParser
310 SpektrumParser:
311 /* prologue: frame size=0 */
312 021a EF92 push r14
313 021c FF92 push r15
314 021e 0F93 push r16
315 0220 1F93 push r17
316 0222 CF93 push r28
317 0224 DF93 push r29
318 /* prologue end (size=6) */
319 0226 482F mov r20,r24
320 0228 00E0 ldi r16,lo8(0)
321 022a 10E0 ldi r17,hi8(0)
322 022c 8091 0000 lds r24,ReSync.3
323 0230 8130 cpi r24,lo8(1)
324 0232 61F4 brne .L98
325 0234 1092 0000 sts ReSync.3,__zero_reg__
326 0238 84E4 ldi r24,lo8(68)
327 023a 8093 0000 sts SpektrumTimer,r24
328 023e 1092 0000 sts FrameCnt.1,__zero_reg__
329 0242 1092 0000 sts Sync.0,__zero_reg__
330 0246 1092 0000 sts ByteHigh.2,__zero_reg__
331 024a 2BC1 rjmp .L97
332 .L98:
333 024c 8091 0000 lds r24,SpektrumTimer
334 0250 8823 tst r24
335 0252 19F4 brne .L100
336 0254 21E0 ldi r18,lo8(1)
337 0256 30E0 ldi r19,hi8(1)
338 0258 01C0 rjmp .L101
339 .L100:
340 025a 9801 movw r18,r16
341 .L101:
342 025c 9091 0000 lds r25,Sync.0
343 0260 9923 tst r25
344 0262 71F4 brne .L102
345 0264 232B or r18,r19
346 0266 11F0 breq .L103
347 0268 81E0 ldi r24,lo8(1)
348 026a 10C0 rjmp .L138
349 .L103:
350 026c 84E4 ldi r24,lo8(68)
351 026e 8093 0000 sts SpektrumTimer,r24
352 0272 9093 0000 sts FrameCnt.1,r25
353 0276 9093 0000 sts Sync.0,r25
354 027a 9093 0000 sts ByteHigh.2,r25
355 027e FAC0 rjmp .L105
356 .L102:
357 0280 9130 cpi r25,lo8(1)
358 0282 69F4 brne .L106
359 0284 232B or r18,r19
360 0286 09F0 breq .+2
361 0288 EBC0 rjmp .L112
362 028a 82E0 ldi r24,lo8(2)
363 .L138:
364 028c 8093 0000 sts Sync.0,r24
365 0290 8091 0000 lds r24,FrameCnt.1
366 0294 8F5F subi r24,lo8(-(1))
367 0296 8093 0000 sts FrameCnt.1,r24
368 029a 83E0 ldi r24,lo8(3)
369 029c E9C0 rjmp .L136
370 .L106:
371 029e 9230 cpi r25,lo8(2)
372 02a0 D1F4 brne .L108
373 02a2 232B or r18,r19
374 02a4 09F0 breq .+2
375 02a6 DCC0 rjmp .L112
376 02a8 83E0 ldi r24,lo8(3)
377 02aa 8093 0000 sts SpektrumTimer,r24
378 02ae 4093 0000 sts ByteHigh.2,r20
379 02b2 9091 0000 lds r25,FrameCnt.1
380 02b6 9230 cpi r25,lo8(2)
381 02b8 39F4 brne .L109
382 02ba 1092 0000 sts Frame2.4,__zero_reg__
383 02be 47FF sbrs r20,7
384 02c0 03C0 rjmp .L109
385 02c2 81E0 ldi r24,lo8(1)
386 02c4 8093 0000 sts Frame2.4,r24
387 .L109:
388 02c8 83E0 ldi r24,lo8(3)
389 02ca 8093 0000 sts Sync.0,r24
390 02ce 9F5F subi r25,lo8(-(1))
391 02d0 9093 0000 sts FrameCnt.1,r25
392 02d4 CFC0 rjmp .L105
393 .L108:
394 02d6 9330 cpi r25,lo8(3)
395 02d8 09F0 breq .+2
396 02da C2C0 rjmp .L112
397 02dc 232B or r18,r19
398 02de 09F0 breq .+2
399 02e0 BFC0 rjmp .L112
400 02e2 9093 0000 sts SpektrumTimer,r25
401 02e6 82E0 ldi r24,lo8(2)
402 02e8 8093 0000 sts Sync.0,r24
403 02ec 8091 0000 lds r24,FrameCnt.1
404 02f0 8F5F subi r24,lo8(-(1))
405 02f2 8093 0000 sts FrameCnt.1,r24
406 02f6 2091 0000 lds r18,ByteHigh.2
407 02fa 822F mov r24,r18
408 02fc 9927 clr r25
409 02fe 782F mov r23,r24
410 0300 6627 clr r22
411 0302 842F mov r24,r20
412 0304 9927 clr r25
413 0306 682B or r22,r24
414 0308 792B or r23,r25
415 030a 8091 0000 lds r24,EE_Parameter+39
416 030e 8130 cpi r24,lo8(1)
417 0310 49F4 brne .L113
418 0312 7370 andi r23,hi8(1023)
419 0314 CB01 movw r24,r22
420 0316 8050 subi r24,lo8(-(-512))
421 0318 9240 sbci r25,hi8(-(-512))
422 031a 63E0 ldi r22,lo8(3)
423 031c 70E0 ldi r23,hi8(3)
424 031e 0E94 0000 call __divmodhi4
425 0322 17C0 rjmp .L137
426 .L113:
427 0324 8230 cpi r24,lo8(2)
428 0326 61F4 brne .L115
429 0328 7770 andi r23,hi8(2047)
430 032a CB01 movw r24,r22
431 032c 8050 subi r24,lo8(-(-1024))
432 032e 9440 sbci r25,hi8(-(-1024))
433 0330 66E0 ldi r22,lo8(6)
434 0332 70E0 ldi r23,hi8(6)
435 0334 0E94 0000 call __divmodhi4
436 0338 2695 lsr r18
437 033a 2695 lsr r18
438 033c 2695 lsr r18
439 033e 0BC0 rjmp .L135
440 .L115:
441 0340 7370 andi r23,hi8(1023)
442 0342 6856 subi r22,lo8(-(-360))
443 0344 7140 sbci r23,hi8(-(-360))
444 0346 CB01 movw r24,r22
445 0348 77FD sbrc r23,7
446 034a 0196 adiw r24,1
447 .L117:
448 034c BC01 movw r22,r24
449 034e 7595 asr r23
450 0350 6795 ror r22
451 .L137:
452 0352 2695 lsr r18
453 0354 2695 lsr r18
454 .L135:
455 0356 022F mov r16,r18
456 0358 1127 clr r17
457 035a 0F70 andi r16,lo8(15)
458 035c 1070 andi r17,hi8(15)
459 035e 0F5F subi r16,lo8(-(1))
460 0360 1F4F sbci r17,hi8(-(1))
461 0362 0D30 cpi r16,13
462 0364 1105 cpc r17,__zero_reg__
463 0366 08F0 brlo .+2
464 0368 74C0 rjmp .L118
465 036a 7801 movw r14,r16
466 036c E00E add r14,r16
467 036e F11E adc r15,r17
468 0370 F701 movw r30,r14
469 0372 E050 subi r30,lo8(-(PPM_in))
470 0374 F040 sbci r31,hi8(-(PPM_in))
471 0376 8081 ld r24,Z
472 0378 9181 ldd r25,Z+1
473 037a 9B01 movw r18,r22
474 037c 281B sub r18,r24
475 037e 390B sbc r19,r25
476 0380 C901 movw r24,r18
477 0382 37FF sbrs r19,7
478 0384 03C0 rjmp .L120
479 0386 9095 com r25
480 0388 8195 neg r24
481 038a 9F4F sbci r25,lo8(-1)
482 .L120:
483 038c 0697 sbiw r24,6
484 038e 94F4 brge .L119
485 0390 8091 0000 lds r24,SenderOkay
486 0394 883C cpi r24,lo8(-56)
487 0396 30F4 brsh .L121
488 0398 8091 0000 lds r24,SenderOkay
489 039c 865F subi r24,lo8(-(10))
490 039e 8093 0000 sts SenderOkay,r24
491 03a2 08C0 rjmp .L119
492 .L121:
493 03a4 88EC ldi r24,lo8(-56)
494 03a6 8093 0000 sts SenderOkay,r24
495 03aa 8091 6F00 lds r24,111
496 03ae 8F7D andi r24,lo8(-33)
497 03b0 8093 6F00 sts 111,r24
498 .L119:
499 03b4 F701 movw r30,r14
500 03b6 E050 subi r30,lo8(-(PPM_in))
501 03b8 F040 sbci r31,hi8(-(PPM_in))
502 03ba 8081 ld r24,Z
503 03bc 9181 ldd r25,Z+1
504 03be 9C01 movw r18,r24
505 03c0 220F lsl r18
506 03c2 331F rol r19
507 03c4 280F add r18,r24
508 03c6 391F adc r19,r25
509 03c8 260F add r18,r22
510 03ca 371F adc r19,r23
511 03cc 37FF sbrs r19,7
512 03ce 02C0 rjmp .L123
513 03d0 2D5F subi r18,lo8(-(3))
514 03d2 3F4F sbci r19,hi8(-(3))
515 .L123:
516 03d4 E901 movw r28,r18
517 03d6 D595 asr r29
518 03d8 C795 ror r28
519 03da D595 asr r29
520 03dc C795 ror r28
521 03de CB01 movw r24,r22
522 03e0 0196 adiw r24,1
523 03e2 8C17 cp r24,r28
524 03e4 9D07 cpc r25,r29
525 03e6 14F4 brge .L124
526 03e8 2197 sbiw r28,1
527 03ea 06C0 rjmp .L125
528 .L124:
529 03ec 6150 subi r22,lo8(-(-1))
530 03ee 7040 sbci r23,hi8(-(-1))
531 03f0 C617 cp r28,r22
532 03f2 D707 cpc r29,r23
533 03f4 0CF4 brge .L125
534 03f6 2196 adiw r28,1
535 .L125:
536 03f8 8091 0000 lds r24,SenderOkay
537 03fc 843B cpi r24,lo8(-76)
538 03fe D0F0 brlo .L127
539 0400 F701 movw r30,r14
540 0402 E050 subi r30,lo8(-(PPM_in))
541 0404 F040 sbci r31,hi8(-(PPM_in))
542 0406 8081 ld r24,Z
543 0408 9181 ldd r25,Z+1
544 040a FE01 movw r30,r28
545 040c E81B sub r30,r24
546 040e F90B sbc r31,r25
547 0410 CF01 movw r24,r30
548 0412 63E0 ldi r22,lo8(3)
549 0414 70E0 ldi r23,hi8(3)
550 0416 0E94 0000 call __divmodhi4
551 041a CB01 movw r24,r22
552 041c 880F lsl r24
553 041e 991F rol r25
554 0420 860F add r24,r22
555 0422 971F adc r25,r23
556 0424 20E0 ldi r18,lo8(PPM_diff)
557 0426 30E0 ldi r19,hi8(PPM_diff)
558 0428 E20E add r14,r18
559 042a F31E adc r15,r19
560 042c F701 movw r30,r14
561 042e 9183 std Z+1,r25
562 0430 8083 st Z,r24
563 0432 07C0 rjmp .L128
564 .L127:
565 0434 20E0 ldi r18,lo8(PPM_diff)
566 0436 30E0 ldi r19,hi8(PPM_diff)
567 0438 E20E add r14,r18
568 043a F31E adc r15,r19
569 043c F701 movw r30,r14
570 043e 1182 std Z+1,__zero_reg__
571 0440 1082 st Z,__zero_reg__
572 .L128:
573 0442 000F add r16,r16
574 0444 111F adc r17,r17
575 0446 0050 subi r16,lo8(-(PPM_in))
576 0448 1040 sbci r17,hi8(-(PPM_in))
577 044a F801 movw r30,r16
578 044c D183 std Z+1,r29
579 044e C083 st Z,r28
580 0450 11C0 rjmp .L105
581 .L118:
582 0452 0231 cpi r16,18
583 0454 1105 cpc r17,__zero_reg__
584 0456 70F0 brlo .L105
585 0458 81E0 ldi r24,lo8(1)
586 045a 8093 0000 sts ReSync.3,r24
587 045e 0AC0 rjmp .L105
588 .L112:
589 0460 81E0 ldi r24,lo8(1)
590 0462 8093 0000 sts ReSync.3,r24
591 0466 1092 0000 sts FrameCnt.1,__zero_reg__
592 046a 1092 0000 sts Frame2.4,__zero_reg__
593 046e 84E4 ldi r24,lo8(68)
594 .L136:
595 0470 8093 0000 sts SpektrumTimer,r24
596 .L105:
597 0474 8091 0000 lds r24,FrameCnt.1
598 0478 8031 cpi r24,lo8(16)
599 047a 98F0 brlo .L97
600 047c 8091 0000 lds r24,Frame2.4
601 0480 8823 tst r24
602 0482 31F4 brne .L133
603 0484 8091 0000 lds r24,ReSync.3
604 0488 8823 tst r24
605 048a 11F4 brne .L133
606 048c 8093 0000 sts NewPpmData,r24
607 .L133:
608 0490 1092 0000 sts FrameCnt.1,__zero_reg__
609 0494 1092 0000 sts Frame2.4,__zero_reg__
610 0498 1092 0000 sts Sync.0,__zero_reg__
611 049c 84E4 ldi r24,lo8(68)
612 049e 8093 0000 sts SpektrumTimer,r24
613 .L97:
614 /* epilogue: frame size=0 */
615 04a2 E6E0 ldi r30,6
616 04a4 CDB7 in r28,__SP_L__
617 04a6 DEB7 in r29,__SP_H__
618 04a8 0C94 0000 jmp __epilogue_restores__+24
619 /* epilogue end (size=5) */
620 /* function SpektrumParser size 334 (323) */
622 /* File "Spektrum.c": code 604 = 0x025c ( 582), prologues 11, epilogues 11 */
8 .text
9 .global SpektrumUartInit
11 SpektrumUartInit:
12 /* prologue: function */
13 /* frame size = 0 */
14 0000 9FB7 in r25,__SREG__
15 /* #APP */
16 ; 84 "Spektrum.c" 1
17 0002 F894 cli
18 ; 0 "" 2
19 /* #NOAPP */
20 0004 8091 C900 lds r24,201
21 0008 8F77 andi r24,lo8(127)
22 000a 8093 C900 sts 201,r24
23 000e 8091 C900 lds r24,201
24 0012 8F7B andi r24,lo8(-65)
25 0014 8093 C900 sts 201,r24
26 0018 8091 C900 lds r24,201
27 001c 8F7D andi r24,lo8(-33)
28 001e 8093 C900 sts 201,r24
29 0022 5A9A sbi 43-32,2
30 0024 5298 cbi 42-32,2
31 0026 5B9A sbi 43-32,3
32 0028 539A sbi 42-32,3
33 002a 1092 CD00 sts 205,__zero_reg__
34 002e 84E1 ldi r24,lo8(20)
35 0030 8093 CC00 sts 204,r24
36 0034 8091 C800 lds r24,200
37 0038 8260 ori r24,lo8(2)
38 003a 8093 C800 sts 200,r24
39 003e 80E1 ldi r24,lo8(16)
40 0040 8093 C900 sts 201,r24
41 0044 8091 CA00 lds r24,202
42 0048 8F77 andi r24,lo8(127)
43 004a 8093 CA00 sts 202,r24
44 004e 8091 CA00 lds r24,202
45 0052 8F7B andi r24,lo8(-65)
46 0054 8093 CA00 sts 202,r24
47 0058 8091 CA00 lds r24,202
48 005c 8F7D andi r24,lo8(-33)
49 005e 8093 CA00 sts 202,r24
50 0062 8091 CA00 lds r24,202
51 0066 8F7E andi r24,lo8(-17)
52 0068 8093 CA00 sts 202,r24
53 006c 8091 CA00 lds r24,202
54 0070 877F andi r24,lo8(-9)
55 0072 8093 CA00 sts 202,r24
56 0076 8091 C900 lds r24,201
57 007a 8B7F andi r24,lo8(-5)
58 007c 8093 C900 sts 201,r24
59 0080 8091 CA00 lds r24,202
60 0084 8460 ori r24,lo8(4)
61 0086 8093 CA00 sts 202,r24
62 008a 8091 CA00 lds r24,202
63 008e 8260 ori r24,lo8(2)
64 0090 8093 CA00 sts 202,r24
65 0094 00C0 rjmp .L2
66 .L3:
67 0096 8091 CE00 lds r24,206
68 .L2:
69 009a 8091 C800 lds r24,200
70 009e 87FD sbrc r24,7
71 00a0 00C0 rjmp .L3
72 00a2 8091 C900 lds r24,201
73 00a6 8068 ori r24,lo8(-128)
74 00a8 8093 C900 sts 201,r24
75 00ac 9FBF out __SREG__,r25
76 /* epilogue start */
77 00ae 0895 ret
79 .global SpektrumParser
81 SpektrumParser:
82 00b0 0F93 push r16
83 00b2 1F93 push r17
84 00b4 CF93 push r28
85 00b6 DF93 push r29
86 /* prologue: function */
87 /* frame size = 0 */
88 00b8 982F mov r25,r24
89 00ba 8091 0000 lds r24,ReSync.2382
90 00be 8130 cpi r24,lo8(1)
91 00c0 01F4 brne .L6
92 00c2 1092 0000 sts ReSync.2382,__zero_reg__
93 00c6 84E4 ldi r24,lo8(68)
94 00c8 8093 0000 sts SpektrumTimer,r24
95 00cc 1092 0000 sts FrameCnt.2380,__zero_reg__
96 00d0 1092 0000 sts Sync.2379,__zero_reg__
97 00d4 1092 0000 sts ByteHigh.2381,__zero_reg__
98 00d8 00C0 rjmp .L27
99 .L6:
100 00da 20E0 ldi r18,lo8(0)
101 00dc 30E0 ldi r19,hi8(0)
102 00de 8091 0000 lds r24,SpektrumTimer
103 00e2 8823 tst r24
104 00e4 01F4 brne .L8
105 00e6 21E0 ldi r18,lo8(1)
106 00e8 30E0 ldi r19,hi8(1)
107 .L8:
108 00ea 8091 0000 lds r24,Sync.2379
109 00ee 8823 tst r24
110 00f0 01F4 brne .L9
111 00f2 232B or r18,r19
112 00f4 01F0 breq .L10
113 00f6 81E0 ldi r24,lo8(1)
114 00f8 00C0 rjmp .L31
115 .L10:
116 00fa 84E4 ldi r24,lo8(68)
117 00fc 8093 0000 sts SpektrumTimer,r24
118 0100 1092 0000 sts FrameCnt.2380,__zero_reg__
119 0104 1092 0000 sts Sync.2379,__zero_reg__
120 0108 1092 0000 sts ByteHigh.2381,__zero_reg__
121 010c 00C0 rjmp .L11
122 .L9:
123 010e 8130 cpi r24,lo8(1)
124 0110 01F4 brne .L12
125 0112 232B or r18,r19
126 0114 01F0 breq .+2
127 0116 00C0 rjmp .L15
128 0118 82E0 ldi r24,lo8(2)
129 .L31:
130 011a 8093 0000 sts Sync.2379,r24
131 011e 8091 0000 lds r24,FrameCnt.2380
132 0122 8F5F subi r24,lo8(-(1))
133 0124 8093 0000 sts FrameCnt.2380,r24
134 0128 83E0 ldi r24,lo8(3)
135 012a 00C0 rjmp .L30
136 .L12:
137 012c 8230 cpi r24,lo8(2)
138 012e 01F4 brne .L13
139 0130 232B or r18,r19
140 0132 01F0 breq .+2
141 0134 00C0 rjmp .L15
142 0136 83E0 ldi r24,lo8(3)
143 0138 8093 0000 sts SpektrumTimer,r24
144 013c 9093 0000 sts ByteHigh.2381,r25
145 0140 2091 0000 lds r18,FrameCnt.2380
146 0144 2230 cpi r18,lo8(2)
147 0146 01F4 brne .L14
148 0148 1092 0000 sts Frame2.2383,__zero_reg__
149 014c 97FF sbrs r25,7
150 014e 00C0 rjmp .L14
151 0150 81E0 ldi r24,lo8(1)
152 0152 8093 0000 sts Frame2.2383,r24
153 .L14:
154 0156 83E0 ldi r24,lo8(3)
155 0158 8093 0000 sts Sync.2379,r24
156 015c 2F5F subi r18,lo8(-(1))
157 015e 2093 0000 sts FrameCnt.2380,r18
158 0162 00C0 rjmp .L11
159 .L13:
160 0164 8330 cpi r24,lo8(3)
161 0166 01F0 breq .+2
162 0168 00C0 rjmp .L15
163 016a 232B or r18,r19
164 016c 01F0 breq .+2
165 016e 00C0 rjmp .L15
166 0170 8093 0000 sts SpektrumTimer,r24
167 0174 82E0 ldi r24,lo8(2)
168 0176 8093 0000 sts Sync.2379,r24
169 017a 8091 0000 lds r24,FrameCnt.2380
170 017e 8F5F subi r24,lo8(-(1))
171 0180 8093 0000 sts FrameCnt.2380,r24
172 0184 4091 0000 lds r20,ByteHigh.2381
173 0188 292F mov r18,r25
174 018a 30E0 ldi r19,lo8(0)
175 018c 942F mov r25,r20
176 018e 80E0 ldi r24,lo8(0)
177 0190 282B or r18,r24
178 0192 392B or r19,r25
179 0194 8091 0000 lds r24,EE_Parameter+39
180 0198 8130 cpi r24,lo8(1)
181 019a 01F4 brne .L16
182 019c 3370 andi r19,hi8(1023)
183 019e C901 movw r24,r18
184 01a0 8050 subi r24,lo8(-(-512))
185 01a2 9240 sbci r25,hi8(-(-512))
186 01a4 63E0 ldi r22,lo8(3)
187 01a6 70E0 ldi r23,hi8(3)
188 01a8 00C0 rjmp .L28
189 .L16:
190 01aa 8230 cpi r24,lo8(2)
191 01ac 01F4 brne .L18
192 01ae 3770 andi r19,hi8(2047)
193 01b0 C901 movw r24,r18
194 01b2 8050 subi r24,lo8(-(-1024))
195 01b4 9440 sbci r25,hi8(-(-1024))
196 01b6 66E0 ldi r22,lo8(6)
197 01b8 70E0 ldi r23,hi8(6)
198 01ba 0E94 0000 call __divmodhi4
199 01be EB01 movw r28,r22
200 01c0 4695 lsr r20
201 01c2 4695 lsr r20
202 01c4 4695 lsr r20
203 01c6 00C0 rjmp .L29
204 .L18:
205 01c8 3370 andi r19,hi8(1023)
206 01ca C901 movw r24,r18
207 01cc 8856 subi r24,lo8(-(-360))
208 01ce 9140 sbci r25,hi8(-(-360))
209 01d0 62E0 ldi r22,lo8(2)
210 01d2 70E0 ldi r23,hi8(2)
211 .L28:
212 01d4 0E94 0000 call __divmodhi4
213 01d8 EB01 movw r28,r22
214 01da 4695 lsr r20
215 01dc 4695 lsr r20
216 .L29:
217 01de 842F mov r24,r20
218 01e0 90E0 ldi r25,lo8(0)
219 01e2 8F70 andi r24,lo8(15)
220 01e4 9070 andi r25,hi8(15)
221 01e6 8C01 movw r16,r24
222 01e8 0F5F subi r16,lo8(-(1))
223 01ea 1F4F sbci r17,hi8(-(1))
224 01ec 0D30 cpi r16,13
225 01ee 1105 cpc r17,__zero_reg__
226 01f0 00F0 brlo .+2
227 01f2 00C0 rjmp .L11
228 01f4 F801 movw r30,r16
229 01f6 EE0F lsl r30
230 01f8 FF1F rol r31
231 01fa E050 subi r30,lo8(-(PPM_in))
232 01fc F040 sbci r31,hi8(-(PPM_in))
233 01fe 8081 ld r24,Z
234 0200 9181 ldd r25,Z+1
235 0202 9E01 movw r18,r28
236 0204 281B sub r18,r24
237 0206 390B sbc r19,r25
238 0208 C901 movw r24,r18
239 020a 37FF sbrs r19,7
240 020c 00C0 rjmp .L20
241 020e 9095 com r25
242 0210 8195 neg r24
243 0212 9F4F sbci r25,lo8(-1)
244 .L20:
245 0214 0697 sbiw r24,6
246 0216 04F4 brge .L19
247 0218 8091 0000 lds r24,SenderOkay
248 021c 883C cpi r24,lo8(-56)
249 021e 00F4 brsh .L21
250 0220 8091 0000 lds r24,SenderOkay
251 0224 865F subi r24,lo8(-(10))
252 0226 8093 0000 sts SenderOkay,r24
253 022a 00C0 rjmp .L19
254 .L21:
255 022c 88EC ldi r24,lo8(-56)
256 022e 8093 0000 sts SenderOkay,r24
257 0232 8091 6F00 lds r24,111
258 0236 8F7D andi r24,lo8(-33)
259 0238 8093 6F00 sts 111,r24
260 .L19:
261 023c F801 movw r30,r16
262 023e EE0F lsl r30
263 0240 FF1F rol r31
264 0242 E050 subi r30,lo8(-(PPM_in))
265 0244 F040 sbci r31,hi8(-(PPM_in))
266 0246 2081 ld r18,Z
267 0248 3181 ldd r19,Z+1
268 024a C901 movw r24,r18
269 024c 880F lsl r24
270 024e 991F rol r25
271 0250 820F add r24,r18
272 0252 931F adc r25,r19
273 0254 8C0F add r24,r28
274 0256 9D1F adc r25,r29
275 0258 64E0 ldi r22,lo8(4)
276 025a 70E0 ldi r23,hi8(4)
277 025c 0E94 0000 call __divmodhi4
278 0260 9B01 movw r18,r22
279 0262 CE01 movw r24,r28
280 0264 0196 adiw r24,1
281 0266 8617 cp r24,r22
282 0268 9707 cpc r25,r23
283 026a 04F4 brge .L22
284 026c 2150 subi r18,lo8(-(-1))
285 026e 3040 sbci r19,hi8(-(-1))
286 0270 00C0 rjmp .L23
287 .L22:
288 0272 2197 sbiw r28,1
289 0274 6C17 cp r22,r28
290 0276 7D07 cpc r23,r29
291 0278 04F4 brge .L23
292 027a 2F5F subi r18,lo8(-(1))
293 027c 3F4F sbci r19,hi8(-(1))
294 .L23:
295 027e 8091 0000 lds r24,SenderOkay
296 0282 E801 movw r28,r16
297 0284 CC0F lsl r28
298 0286 DD1F rol r29
299 0288 843B cpi r24,lo8(-76)
300 028a 00F0 brlo .L24
301 028c FE01 movw r30,r28
302 028e E050 subi r30,lo8(-(PPM_in))
303 0290 F040 sbci r31,hi8(-(PPM_in))
304 0292 8081 ld r24,Z
305 0294 9181 ldd r25,Z+1
306 0296 A901 movw r20,r18
307 0298 481B sub r20,r24
308 029a 590B sbc r21,r25
309 029c CA01 movw r24,r20
310 029e 63E0 ldi r22,lo8(3)
311 02a0 70E0 ldi r23,hi8(3)
312 02a2 0E94 0000 call __divmodhi4
313 02a6 CB01 movw r24,r22
314 02a8 880F lsl r24
315 02aa 991F rol r25
316 02ac 860F add r24,r22
317 02ae 971F adc r25,r23
318 02b0 C050 subi r28,lo8(-(PPM_diff))
319 02b2 D040 sbci r29,hi8(-(PPM_diff))
320 02b4 9983 std Y+1,r25
321 02b6 8883 st Y,r24
322 02b8 00C0 rjmp .L25
323 .L24:
324 02ba C050 subi r28,lo8(-(PPM_diff))
325 02bc D040 sbci r29,hi8(-(PPM_diff))
326 02be 1982 std Y+1,__zero_reg__
327 02c0 1882 st Y,__zero_reg__
328 .L25:
329 02c2 000F lsl r16
330 02c4 111F rol r17
331 02c6 0050 subi r16,lo8(-(PPM_in))
332 02c8 1040 sbci r17,hi8(-(PPM_in))
333 02ca F801 movw r30,r16
334 02cc 3183 std Z+1,r19
335 02ce 2083 st Z,r18
336 02d0 00C0 rjmp .L11
337 .L15:
338 02d2 81E0 ldi r24,lo8(1)
339 02d4 8093 0000 sts ReSync.2382,r24
340 02d8 1092 0000 sts FrameCnt.2380,__zero_reg__
341 02dc 1092 0000 sts Frame2.2383,__zero_reg__
342 02e0 84E4 ldi r24,lo8(68)
343 .L30:
344 02e2 8093 0000 sts SpektrumTimer,r24
345 .L11:
346 02e6 8091 0000 lds r24,FrameCnt.2380
347 02ea 8031 cpi r24,lo8(16)
348 02ec 00F0 brlo .L27
349 02ee 8091 0000 lds r24,Frame2.2383
350 02f2 8823 tst r24
351 02f4 01F4 brne .L26
352 02f6 8091 0000 lds r24,ReSync.2382
353 02fa 8823 tst r24
354 02fc 01F4 brne .L26
355 02fe 1092 0000 sts NewPpmData,__zero_reg__
356 .L26:
357 0302 1092 0000 sts FrameCnt.2380,__zero_reg__
358 0306 1092 0000 sts Frame2.2383,__zero_reg__
359 030a 1092 0000 sts Sync.2379,__zero_reg__
360 030e 84E4 ldi r24,lo8(68)
361 0310 8093 0000 sts SpektrumTimer,r24
362 .L27:
363 /* epilogue start */
364 0314 DF91 pop r29
365 0316 CF91 pop r28
366 0318 1F91 pop r17
367 031a 0F91 pop r16
368 031c 0895 ret
370 .global SpektrumBinding
372 SpektrumBinding:
373 031e CF93 push r28
374 0320 DF93 push r29
375 /* prologue: function */
376 /* frame size = 0 */
377 0322 80E1 ldi r24,lo8(10000)
378 0324 97E2 ldi r25,hi8(10000)
379 0326 0E94 0000 call SetDelay
380 032a EC01 movw r28,r24
381 032c 8091 C900 lds r24,201
382 0330 8F77 andi r24,lo8(127)
383 0332 8093 C900 sts 201,r24
384 0336 8091 C900 lds r24,201
385 033a 8F7E andi r24,lo8(-17)
386 033c 8093 C900 sts 201,r24
387 0340 5A98 cbi 43-32,2
388 0342 00D0 rcall .
389 0344 00D0 rcall .
390 0346 80E0 ldi r24,lo8(gs(uart_putchar))
391 0348 90E0 ldi r25,hi8(gs(uart_putchar))
392 034a EDB7 in r30,__SP_L__
393 034c FEB7 in r31,__SP_H__
394 034e 9283 std Z+2,r25
395 0350 8183 std Z+1,r24
396 0352 80E0 ldi r24,lo8(__c.2218)
397 0354 90E0 ldi r25,hi8(__c.2218)
398 0356 9483 std Z+4,r25
399 0358 8383 std Z+3,r24
400 035a E091 0000 lds r30,_printf_P
401 035e F091 0000 lds r31,(_printf_P)+1
402 0362 0995 icall
403 0364 0F90 pop __tmp_reg__
404 0366 0F90 pop __tmp_reg__
405 0368 0F90 pop __tmp_reg__
406 036a 0F90 pop __tmp_reg__
407 036c 00C0 rjmp .L33
408 .L35:
409 036e 4A9B sbis 41-32,2
410 0370 00C0 rjmp .L33
411 0372 8AE5 ldi r24,lo8(90)
412 0374 90E0 ldi r25,hi8(90)
413 0376 0E94 0000 call SetDelay
414 037a EC01 movw r28,r24
415 037c 00D0 rcall .
416 037e 00D0 rcall .
417 0380 80E0 ldi r24,lo8(gs(uart_putchar))
418 0382 90E0 ldi r25,hi8(gs(uart_putchar))
419 0384 EDB7 in r30,__SP_L__
420 0386 FEB7 in r31,__SP_H__
421 0388 9283 std Z+2,r25
422 038a 8183 std Z+1,r24
423 038c 80E0 ldi r24,lo8(__c.2223)
424 038e 90E0 ldi r25,hi8(__c.2223)
425 0390 9483 std Z+4,r25
426 0392 8383 std Z+3,r24
427 0394 E091 0000 lds r30,_printf_P
428 0398 F091 0000 lds r31,(_printf_P)+1
429 039c 0995 icall
430 039e 529A sbi 42-32,2
431 03a0 0F90 pop __tmp_reg__
432 03a2 0F90 pop __tmp_reg__
433 03a4 0F90 pop __tmp_reg__
434 03a6 0F90 pop __tmp_reg__
435 03a8 00C0 rjmp .L34
436 .L33:
437 03aa CE01 movw r24,r28
438 03ac 0E94 0000 call CheckDelay
439 03b0 8823 tst r24
440 03b2 01F0 breq .L35
441 03b4 00C0 rjmp .L68
442 .L34:
443 03b6 CE01 movw r24,r28
444 03b8 0E94 0000 call CheckDelay
445 03bc 8823 tst r24
446 03be 01F0 breq .L34
447 03c0 80E0 ldi r24,lo8(0)
448 03c2 90E0 ldi r25,hi8(0)
449 .L37:
450 03c4 5A9A sbi 43-32,2
451 03c6 0196 adiw r24,1
452 03c8 8436 cpi r24,100
453 03ca 9105 cpc r25,__zero_reg__
454 03cc 01F4 brne .L37
455 03ce 80E0 ldi r24,lo8(0)
456 03d0 90E0 ldi r25,hi8(0)
457 .L38:
458 03d2 5A98 cbi 43-32,2
459 03d4 0196 adiw r24,1
460 03d6 F1E0 ldi r31,hi8(400)
461 03d8 8039 cpi r24,lo8(400)
462 03da 9F07 cpc r25,r31
463 03dc 01F4 brne .L38
464 03de 80E0 ldi r24,lo8(0)
465 03e0 90E0 ldi r25,hi8(0)
466 .L39:
467 03e2 5A9A sbi 43-32,2
468 03e4 0196 adiw r24,1
469 03e6 8A30 cpi r24,10
470 03e8 9105 cpc r25,__zero_reg__
471 03ea 01F4 brne .L39
472 03ec 80E0 ldi r24,lo8(0)
473 03ee 90E0 ldi r25,hi8(0)
474 .L40:
475 03f0 5A98 cbi 43-32,2
476 03f2 0196 adiw r24,1
477 03f4 8A30 cpi r24,10
478 03f6 9105 cpc r25,__zero_reg__
479 03f8 01F4 brne .L40
480 03fa 80E0 ldi r24,lo8(0)
481 03fc 90E0 ldi r25,hi8(0)
482 .L41:
483 03fe 5A9A sbi 43-32,2
484 0400 0196 adiw r24,1
485 0402 21E0 ldi r18,hi8(400)
486 0404 8039 cpi r24,lo8(400)
487 0406 9207 cpc r25,r18
488 0408 01F4 brne .L41
489 040a 80E0 ldi r24,lo8(0)
490 040c 90E0 ldi r25,hi8(0)
491 .L42:
492 040e 5A98 cbi 43-32,2
493 0410 0196 adiw r24,1
494 0412 E1E0 ldi r30,hi8(400)
495 0414 8039 cpi r24,lo8(400)
496 0416 9E07 cpc r25,r30
497 0418 01F4 brne .L42
498 041a 80E0 ldi r24,lo8(0)
499 041c 90E0 ldi r25,hi8(0)
500 .L43:
501 041e 5A9A sbi 43-32,2
502 0420 0196 adiw r24,1
503 0422 8A30 cpi r24,10
504 0424 9105 cpc r25,__zero_reg__
505 0426 01F4 brne .L43
506 0428 80E0 ldi r24,lo8(0)
507 042a 90E0 ldi r25,hi8(0)
508 .L44:
509 042c 5A98 cbi 43-32,2
510 042e 0196 adiw r24,1
511 0430 8A30 cpi r24,10
512 0432 9105 cpc r25,__zero_reg__
513 0434 01F4 brne .L44
514 0436 80E0 ldi r24,lo8(0)
515 0438 90E0 ldi r25,hi8(0)
516 .L45:
517 043a 5A9A sbi 43-32,2
518 043c 0196 adiw r24,1
519 043e F1E0 ldi r31,hi8(400)
520 0440 8039 cpi r24,lo8(400)
521 0442 9F07 cpc r25,r31
522 0444 01F4 brne .L45
523 0446 80E0 ldi r24,lo8(0)
524 0448 90E0 ldi r25,hi8(0)
525 .L46:
526 044a 5A98 cbi 43-32,2
527 044c 0196 adiw r24,1
528 044e 21E0 ldi r18,hi8(400)
529 0450 8039 cpi r24,lo8(400)
530 0452 9207 cpc r25,r18
531 0454 01F4 brne .L46
532 0456 80E0 ldi r24,lo8(0)
533 0458 90E0 ldi r25,hi8(0)
534 .L47:
535 045a 5A9A sbi 43-32,2
536 045c 0196 adiw r24,1
537 045e 8A30 cpi r24,10
538 0460 9105 cpc r25,__zero_reg__
539 0462 01F4 brne .L47
540 0464 80E0 ldi r24,lo8(0)
541 0466 90E0 ldi r25,hi8(0)
542 .L48:
543 0468 5A98 cbi 43-32,2
544 046a 0196 adiw r24,1
545 046c 8A30 cpi r24,10
546 046e 9105 cpc r25,__zero_reg__
547 0470 01F4 brne .L48
548 0472 80E0 ldi r24,lo8(0)
549 0474 90E0 ldi r25,hi8(0)
550 .L49:
551 0476 5A9A sbi 43-32,2
552 0478 0196 adiw r24,1
553 047a E1E0 ldi r30,hi8(400)
554 047c 8039 cpi r24,lo8(400)
555 047e 9E07 cpc r25,r30
556 0480 01F4 brne .L49
557 .L50:
558 0482 5298 cbi 42-32,2
559 0484 5A98 cbi 43-32,2
560 0486 0E94 0000 call SpektrumUartInit
561 /* epilogue start */
562 048a DF91 pop r29
563 048c CF91 pop r28
564 048e 0895 ret
565 .L68:
566 0490 00D0 rcall .
567 0492 00D0 rcall .
568 0494 80E0 ldi r24,lo8(gs(uart_putchar))
569 0496 90E0 ldi r25,hi8(gs(uart_putchar))
570 0498 EDB7 in r30,__SP_L__
571 049a FEB7 in r31,__SP_H__
572 049c 9283 std Z+2,r25
573 049e 8183 std Z+1,r24
574 04a0 80E0 ldi r24,lo8(__c.2267)
575 04a2 90E0 ldi r25,hi8(__c.2267)
576 04a4 9483 std Z+4,r25
577 04a6 8383 std Z+3,r24
578 04a8 E091 0000 lds r30,_printf_P
579 04ac F091 0000 lds r31,(_printf_P)+1
580 04b0 0995 icall
581 04b2 0F90 pop __tmp_reg__
582 04b4 0F90 pop __tmp_reg__
583 04b6 0F90 pop __tmp_reg__
584 04b8 0F90 pop __tmp_reg__
585 04ba 00C0 rjmp .L50
587 .global SpektrumTimer
588 .global SpektrumTimer
589 .section .bss
592 SpektrumTimer:
593 0000 00 .skip 1,0
594 .lcomm Frame2.2383,1
595 .data
598 ReSync.2382:
599 0000 01 .byte 1
600 .lcomm ByteHigh.2381,1
601 .lcomm FrameCnt.2380,1
602 .lcomm Sync.2379,1
603 .section .progmem.data,"a",@progbits
606 __c.2267:
607 0000 5469 6D65 .string "Timeout.\n\r"
607 6F75 742E
607 0A0D 00
610 __c.2223:
611 000b 6F6B 2E0A .string "ok.\n\r"
611 0D00
614 __c.2218:
615 0011 0A0D 506C .string "\n\rPlease connect Spektrum receiver for binding NOW..."
615 6561 7365
615 2063 6F6E
615 6E65 6374
615 2053 7065
616 .global __do_copy_data
617 .global __do_clear_bss
DEFINED SYMBOLS
*ABS*:00000000 Spektrum.c
C:\Users\Arthur-P\AppData\Local\Temp/ccIfbaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/ccIfbaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/ccIfbaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/ccIfbaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccIfbaaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccIfbaaa.s:15 .bss:00000000 SpektrumTimer
C:\Users\Arthur-P\AppData\Local\Temp/ccIfbaaa.s:20 .text:00000000 SpektrumUartInit
C:\Users\Arthur-P\AppData\Local\Temp/ccIfbaaa.s:94 .progmem.data:00000000 __c.5
C:\Users\Arthur-P\AppData\Local\Temp/ccIfbaaa.s:98 .progmem.data:00000036 __c.6
C:\Users\Arthur-P\AppData\Local\Temp/ccIfbaaa.s:102 .progmem.data:0000003c __c.7
C:\Users\Arthur-P\AppData\Local\Temp/ccIfbaaa.s:107 .text:000000b6 SpektrumBinding
.bss:00000001 Sync.0
C:\Users\Arthur-P\AppData\Local\Temp/ccIfbaaa.s:298 .bss:00000002 FrameCnt.1
C:\Users\Arthur-P\AppData\Local\Temp/ccIfbaaa.s:299 .bss:00000003 ByteHigh.2
C:\Users\Arthur-P\AppData\Local\Temp/ccIfbaaa.s:304 .data:00000000 ReSync.3
C:\Users\Arthur-P\AppData\Local\Temp/ccIfbaaa.s:300 .bss:00000004 Frame2.4
C:\Users\Arthur-P\AppData\Local\Temp/ccIfbaaa.s:310 .text:0000021a SpektrumParser
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccUjdFTS.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccUjdFTS.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccUjdFTS.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccUjdFTS.s:5 *ABS*:00000034 __CCP__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccUjdFTS.s:6 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccUjdFTS.s:7 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccUjdFTS.s:11 .text:00000000 SpektrumUartInit
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccUjdFTS.s:81 .text:000000b0 SpektrumParser
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccUjdFTS.s:598 .data:00000000 ReSync.2382
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccUjdFTS.s:592 .bss:00000000 SpektrumTimer
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccUjdFTS.s:600 .bss:00000003 FrameCnt.2380
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccUjdFTS.s:601 .bss:00000004 Sync.2379
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccUjdFTS.s:594 .bss:00000002 ByteHigh.2381
.bss:00000001 Frame2.2383
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccUjdFTS.s:372 .text:0000031e SpektrumBinding
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccUjdFTS.s:614 .progmem.data:00000011 __c.2218
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccUjdFTS.s:610 .progmem.data:0000000b __c.2223
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccUjdFTS.s:606 .progmem.data:00000000 __c.2267
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
SetDelay
uart_putchar
_printf_P
CheckDelay
__epilogue_restores__
EE_Parameter
__divmodhi4
PPM_in
645,3 → 634,9
SenderOkay
PPM_diff
NewPpmData
SetDelay
uart_putchar
_printf_P
CheckDelay
__do_copy_data
__do_clear_bss