Subversion Repositories FlightCtrl

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

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