Subversion Repositories FlightCtrl

Rev

Details | Last modification | View Log | RSS feed

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