Subversion Repositories FlightCtrl

Rev

Details | Last modification | View Log | RSS feed

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