Rev 2302 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
2287 | - | 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/ccszG7xd.s:3 *ABS*:0000003f __SREG__ |
||
709 | C:\Temp/ccszG7xd.s:4 *ABS*:0000003e __SP_H__ |
||
710 | C:\Temp/ccszG7xd.s:5 *ABS*:0000003d __SP_L__ |
||
711 | C:\Temp/ccszG7xd.s:6 *ABS*:00000000 __tmp_reg__ |
||
712 | C:\Temp/ccszG7xd.s:7 *ABS*:00000001 __zero_reg__ |
||
713 | C:\Temp/ccszG7xd.s:14 .data:00000000 PPM_Neutral |
||
714 | C:\Temp/ccszG7xd.s:19 .data:00000002 NewPpmData |
||
715 | C:\Temp/ccszG7xd.s:26 .bss:00000000 tmpChannels |
||
716 | C:\Temp/ccszG7xd.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/ccszG7xd.s:76 .bss:00000003 index.1 |
||
721 | C:\Temp/ccszG7xd.s:77 .bss:00000005 AltICR.2 |
||
722 | C:\Temp/ccszG7xd.s:78 .bss:00000007 ppm_in.3 |
||
723 | C:\Temp/ccszG7xd.s:79 .bss:00000021 ppm_diff.4 |
||
724 | C:\Temp/ccszG7xd.s:80 .bss:0000003b old_ppm_in.5 |
||
725 | C:\Temp/ccszG7xd.s:81 .bss:00000055 old_ppm_diff.6 |
||
726 | C:\Temp/ccszG7xd.s:82 .bss:0000006f index.7 |
||
727 | C:\Temp/ccszG7xd.s:83 .bss:00000070 okay_cnt.8 |
||
728 | C:\Temp/ccszG7xd.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 |