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