Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
911 | - | 1 | 1 .file "timer0.c" |
2 | 2 __SREG__ = 0x3f |
||
3 | 3 __SP_H__ = 0x3e |
||
4 | 4 __SP_L__ = 0x3d |
||
5 | 5 __tmp_reg__ = 0 |
||
6 | 6 __zero_reg__ = 1 |
||
7 | 7 .global __do_copy_data |
||
8 | 8 .global __do_clear_bss |
||
9 | 9 .text |
||
10 | 10 .global __vector_18 |
||
11 | 12 __vector_18: |
||
12 | 13 /* prologue: frame size=0 */ |
||
13 | 14 0000 1F92 push __zero_reg__ |
||
14 | 15 0002 0F92 push __tmp_reg__ |
||
15 | 16 0004 0FB6 in __tmp_reg__,__SREG__ |
||
16 | 17 0006 0F92 push __tmp_reg__ |
||
17 | 18 0008 1124 clr __zero_reg__ |
||
18 | 19 000a 2F93 push r18 |
||
19 | 20 000c 3F93 push r19 |
||
20 | 21 000e 5F93 push r21 |
||
21 | 22 0010 6F93 push r22 |
||
22 | 23 0012 7F93 push r23 |
||
23 | 24 0014 8F93 push r24 |
||
24 | 25 0016 9F93 push r25 |
||
25 | 26 0018 AF93 push r26 |
||
26 | 27 001a BF93 push r27 |
||
27 | 28 /* prologue end (size=14) */ |
||
28 | 29 001c 8091 0000 lds r24,SendSPI |
||
29 | 30 0020 8823 tst r24 |
||
30 | 31 0022 01F0 breq .L2 |
||
31 | 32 0024 8091 0000 lds r24,SendSPI |
||
32 | 33 0028 8150 subi r24,lo8(-(-1)) |
||
33 | 34 002a 8093 0000 sts SendSPI,r24 |
||
34 | 35 .L2: |
||
35 | 36 002e 8091 0000 lds r24,SpektrumTimer |
||
36 | 37 0032 8823 tst r24 |
||
37 | 38 0034 01F0 breq .L4 |
||
38 | 39 0036 8150 subi r24,lo8(-(-1)) |
||
39 | 40 0038 8093 0000 sts SpektrumTimer,r24 |
||
40 | 41 .L4: |
||
41 | 42 003c 8091 0000 lds r24,cnt.2508 |
||
42 | 43 0040 8150 subi r24,lo8(-(-1)) |
||
43 | 44 0042 8093 0000 sts cnt.2508,r24 |
||
44 | 45 0046 8F3F cpi r24,lo8(-1) |
||
45 | 46 0048 01F0 breq .+2 |
||
46 | 47 004a 00C0 rjmp .L6 |
||
47 | 48 004c 89E0 ldi r24,lo8(9) |
||
48 | 49 004e 8093 0000 sts cnt.2508,r24 |
||
49 | 50 0052 8091 0000 lds r24,CountMilliseconds |
||
50 | 51 0056 9091 0000 lds r25,(CountMilliseconds)+1 |
||
51 | 52 005a 0196 adiw r24,1 |
||
52 | 53 005c 9093 0000 sts (CountMilliseconds)+1,r25 |
||
53 | 54 0060 8093 0000 sts CountMilliseconds,r24 |
||
54 | 55 0064 8091 0000 lds r24,cnt_1ms.2507 |
||
55 | 56 0068 8F5F subi r24,lo8(-(1)) |
||
56 | 57 006a 8170 andi r24,lo8(1) |
||
57 | 58 006c 8093 0000 sts cnt_1ms.2507,r24 |
||
58 | 59 0070 8823 tst r24 |
||
59 | 60 0072 01F4 brne .L8 |
||
60 | 61 0074 81E0 ldi r24,lo8(1) |
||
61 | 62 0076 8093 0000 sts UpdateMotor,r24 |
||
62 | 63 .L8: |
||
63 | 64 007a 3499 sbic 38-0x20,4 |
||
64 | 65 007c 00C0 rjmp .L10 |
||
65 | 66 007e 81E0 ldi r24,lo8(1) |
||
66 | 67 0080 8093 0000 sts compass_active.2509,r24 |
||
67 | 68 .L10: |
||
68 | 69 0084 8091 0000 lds r24,beeptime |
||
69 | 70 0088 9091 0000 lds r25,(beeptime)+1 |
||
70 | 71 008c 892B or r24,r25 |
||
71 | 72 008e 01F0 breq .L12 |
||
72 | 73 0090 8091 0000 lds r24,beeptime |
||
73 | 74 0094 9091 0000 lds r25,(beeptime)+1 |
||
74 | 75 0098 0B97 sbiw r24,11 |
||
75 | 76 009a 00F0 brlo .L14 |
||
76 | 77 009c 8091 0000 lds r24,beeptime |
||
77 | 78 00a0 9091 0000 lds r25,(beeptime)+1 |
||
78 | 79 00a4 0A97 sbiw r24,10 |
||
79 | 80 00a6 9093 0000 sts (beeptime)+1,r25 |
||
80 | 81 00aa 8093 0000 sts beeptime,r24 |
||
81 | 82 00ae 00C0 rjmp .L16 |
||
82 | 83 .L14: |
||
83 | 84 00b0 1092 0000 sts (beeptime)+1,__zero_reg__ |
||
84 | 85 00b4 1092 0000 sts beeptime,__zero_reg__ |
||
85 | 86 .L16: |
||
86 | 87 00b8 8091 0000 lds r24,beeptime |
||
87 | 88 00bc 9091 0000 lds r25,(beeptime)+1 |
||
88 | 89 00c0 2091 0000 lds r18,BeepMuster |
||
89 | 90 00c4 3091 0000 lds r19,(BeepMuster)+1 |
||
90 | 91 00c8 8223 and r24,r18 |
||
91 | 92 00ca 9323 and r25,r19 |
||
92 | 93 00cc 892B or r24,r25 |
||
93 | 94 00ce 01F0 breq .+2 |
||
94 | 95 00d0 00C0 rjmp .L17 |
||
95 | 96 00d2 00C0 rjmp .L18 |
||
96 | 97 .L12: |
||
97 | 98 00d4 8FEF ldi r24,lo8(-1) |
||
98 | 99 00d6 9FEF ldi r25,hi8(-1) |
||
99 | 100 00d8 9093 0000 sts (BeepMuster)+1,r25 |
||
100 | 101 00dc 8093 0000 sts BeepMuster,r24 |
||
101 | 102 .L18: |
||
102 | 103 00e0 8091 0000 lds r24,PlatinenVersion |
||
103 | 104 00e4 8A30 cpi r24,lo8(10) |
||
104 | 105 00e6 01F4 brne .L37 |
||
105 | 106 00e8 00C0 rjmp .L19 |
||
106 | 107 .L21: |
||
107 | 108 00ea 5A9A sbi 43-0x20,2 |
||
108 | 109 00ec 00C0 rjmp .L6 |
||
109 | 110 .L38: |
||
110 | 111 00ee 479A sbi 40-0x20,7 |
||
111 | 112 00f0 00C0 rjmp .L6 |
||
112 | 113 .L19: |
||
113 | 114 00f2 5A98 cbi 43-0x20,2 |
||
114 | 115 00f4 00C0 rjmp .L6 |
||
115 | 116 .L37: |
||
116 | 117 00f6 4798 cbi 40-0x20,7 |
||
117 | 118 .L6: |
||
118 | 119 00f8 8091 0000 lds r24,compass_active.2509 |
||
119 | 120 00fc 8823 tst r24 |
||
120 | 121 00fe 01F4 brne .+2 |
||
121 | 122 0100 00C0 rjmp .L36 |
||
122 | 123 0102 8091 0000 lds r24,NaviDataOkay |
||
123 | 124 0106 8823 tst r24 |
||
124 | 125 0108 01F0 breq .+2 |
||
125 | 126 010a 00C0 rjmp .L36 |
||
126 | 127 010c 8091 0000 lds r24,EE_Parameter+13 |
||
127 | 128 0110 83FF sbrs r24,3 |
||
128 | 129 0112 00C0 rjmp .L36 |
||
129 | 130 0114 349B sbis 38-0x20,4 |
||
130 | 131 0116 00C0 rjmp .L27 |
||
131 | 132 0118 8091 0000 lds r24,cntKompass |
||
132 | 133 011c 9091 0000 lds r25,(cntKompass)+1 |
||
133 | 134 0120 0196 adiw r24,1 |
||
134 | 135 0122 9093 0000 sts (cntKompass)+1,r25 |
||
135 | 136 0126 8093 0000 sts cntKompass,r24 |
||
136 | 137 012a 8091 0000 lds r24,cntKompass |
||
137 | 138 012e 9091 0000 lds r25,(cntKompass)+1 |
||
138 | 139 0132 895E subi r24,lo8(1001) |
||
139 | 140 0134 9340 sbci r25,hi8(1001) |
||
140 | 141 0136 00F4 brsh .+2 |
||
141 | 142 0138 00C0 rjmp .L36 |
||
142 | 143 013a 1092 0000 sts compass_active.2509,__zero_reg__ |
||
143 | 144 013e 00C0 rjmp .L36 |
||
144 | 145 .L27: |
||
145 | 146 0140 8091 0000 lds r24,cntKompass |
||
146 | 147 0144 9091 0000 lds r25,(cntKompass)+1 |
||
147 | 148 0148 892B or r24,r25 |
||
148 | 149 014a 01F4 brne .+2 |
||
149 | 150 014c 00C0 rjmp .L30 |
||
150 | 151 014e 8091 0000 lds r24,cntKompass |
||
151 | 152 0152 9091 0000 lds r25,(cntKompass)+1 |
||
152 | 153 0156 8A56 subi r24,lo8(362) |
||
153 | 154 0158 9140 sbci r25,hi8(362) |
||
154 | 155 015a 00F4 brsh .L30 |
||
155 | 156 015c 2091 0000 lds r18,cntKompass |
||
156 | 157 0160 3091 0000 lds r19,(cntKompass)+1 |
||
157 | 158 0164 8091 0000 lds r24,cntKompass |
||
158 | 159 0168 9091 0000 lds r25,(cntKompass)+1 |
||
159 | 160 016c 69E2 ldi r22,lo8(41) |
||
160 | 161 016e 70E0 ldi r23,hi8(41) |
||
161 | 162 0170 0E94 0000 call __udivmodhi4 |
||
162 | 163 0174 260F add r18,r22 |
||
163 | 164 0176 371F adc r19,r23 |
||
164 | 165 0178 3093 0000 sts (cntKompass)+1,r19 |
||
165 | 166 017c 2093 0000 sts cntKompass,r18 |
||
166 | 167 0180 8091 0000 lds r24,cntKompass |
||
167 | 168 0184 9091 0000 lds r25,(cntKompass)+1 |
||
168 | 169 0188 0B97 sbiw r24,11 |
||
169 | 170 018a 00F0 brlo .L33 |
||
170 | 171 018c 8091 0000 lds r24,cntKompass |
||
171 | 172 0190 9091 0000 lds r25,(cntKompass)+1 |
||
172 | 173 0194 0A97 sbiw r24,10 |
||
173 | 174 0196 9093 0000 sts (KompassValue)+1,r25 |
||
174 | 175 019a 8093 0000 sts KompassValue,r24 |
||
175 | 176 019e 00C0 rjmp .L35 |
||
176 | 177 .L33: |
||
177 | 178 01a0 1092 0000 sts (KompassValue)+1,__zero_reg__ |
||
178 | 179 01a4 1092 0000 sts KompassValue,__zero_reg__ |
||
179 | 180 .L35: |
||
180 | 181 01a8 8091 0000 lds r24,KompassValue |
||
181 | 182 01ac 9091 0000 lds r25,(KompassValue)+1 |
||
182 | 183 01b0 845E subi r24,lo8(-(540)) |
||
183 | 184 01b2 9D4F sbci r25,hi8(-(540)) |
||
184 | 185 01b4 2091 0000 lds r18,KompassStartwert |
||
185 | 186 01b8 3091 0000 lds r19,(KompassStartwert)+1 |
||
186 | 187 01bc 821B sub r24,r18 |
||
187 | 188 01be 930B sbc r25,r19 |
||
188 | 189 01c0 68E6 ldi r22,lo8(360) |
||
189 | 190 01c2 71E0 ldi r23,hi8(360) |
||
190 | 191 01c4 0E94 0000 call __divmodhi4 |
||
191 | 192 01c8 845B subi r24,lo8(-(-180)) |
||
192 | 193 01ca 9040 sbci r25,hi8(-(-180)) |
||
193 | 194 01cc 9093 0000 sts (KompassRichtung)+1,r25 |
||
194 | 195 01d0 8093 0000 sts KompassRichtung,r24 |
||
195 | 196 .L30: |
||
196 | 197 01d4 1092 0000 sts (cntKompass)+1,__zero_reg__ |
||
197 | 198 01d8 1092 0000 sts cntKompass,__zero_reg__ |
||
198 | 199 01dc 00C0 rjmp .L36 |
||
199 | 200 .L17: |
||
200 | 201 01de 8091 0000 lds r24,PlatinenVersion |
||
201 | 202 01e2 8A30 cpi r24,lo8(10) |
||
202 | 203 01e4 01F0 breq .+2 |
||
203 | 204 01e6 00C0 rjmp .L38 |
||
204 | 205 01e8 00C0 rjmp .L21 |
||
205 | 206 .L36: |
||
206 | 207 /* epilogue: frame size=0 */ |
||
207 | 208 01ea BF91 pop r27 |
||
208 | 209 01ec AF91 pop r26 |
||
209 | 210 01ee 9F91 pop r25 |
||
210 | 211 01f0 8F91 pop r24 |
||
211 | 212 01f2 7F91 pop r23 |
||
212 | 213 01f4 6F91 pop r22 |
||
213 | 214 01f6 5F91 pop r21 |
||
214 | 215 01f8 3F91 pop r19 |
||
215 | 216 01fa 2F91 pop r18 |
||
216 | 217 01fc 0F90 pop __tmp_reg__ |
||
217 | 218 01fe 0FBE out __SREG__,__tmp_reg__ |
||
218 | 219 0200 0F90 pop __tmp_reg__ |
||
219 | 220 0202 1F90 pop __zero_reg__ |
||
220 | 221 0204 1895 reti |
||
221 | 222 /* epilogue end (size=14) */ |
||
222 | 223 /* function __vector_18 size 263 (235) */ |
||
223 | 225 .global SetDelay |
||
224 | 227 SetDelay: |
||
225 | 228 /* prologue: frame size=0 */ |
||
226 | 229 /* prologue end (size=0) */ |
||
227 | 230 0206 2091 0000 lds r18,CountMilliseconds |
||
228 | 231 020a 3091 0000 lds r19,(CountMilliseconds)+1 |
||
229 | 232 020e 2F5F subi r18,lo8(-(1)) |
||
230 | 233 0210 3F4F sbci r19,hi8(-(1)) |
||
231 | 234 0212 820F add r24,r18 |
||
232 | 235 0214 931F adc r25,r19 |
||
233 | 236 /* epilogue: frame size=0 */ |
||
234 | 237 0216 0895 ret |
||
235 | 238 /* epilogue end (size=1) */ |
||
236 | 239 /* function SetDelay size 9 (8) */ |
||
237 | 241 .global CheckDelay |
||
238 | 243 CheckDelay: |
||
239 | 244 /* prologue: frame size=0 */ |
||
240 | 245 /* prologue end (size=0) */ |
||
241 | 246 0218 2091 0000 lds r18,CountMilliseconds |
||
242 | 247 021c 3091 0000 lds r19,(CountMilliseconds)+1 |
||
243 | 248 0220 821B sub r24,r18 |
||
244 | 249 0222 930B sbc r25,r19 |
||
245 | 250 0224 892F mov r24,r25 |
||
246 | 251 0226 9927 clr r25 |
||
247 | 252 0228 8695 lsr r24 |
||
248 | 253 022a 8074 andi r24,lo8(64) |
||
249 | 254 022c 90E0 ldi r25,lo8(0) |
||
250 | 255 /* epilogue: frame size=0 */ |
||
251 | 256 022e 0895 ret |
||
252 | 257 /* epilogue end (size=1) */ |
||
253 | 258 /* function CheckDelay size 12 (11) */ |
||
254 | 260 .global TIMER2_Init |
||
255 | 262 TIMER2_Init: |
||
256 | 263 /* prologue: frame size=0 */ |
||
257 | 264 /* prologue end (size=0) */ |
||
258 | 265 0230 9FB7 in r25,95-0x20 |
||
259 | 266 /* #APP */ |
||
260 | 267 0232 F894 cli |
||
261 | 268 /* #NOAPP */ |
||
262 | 269 0234 5F98 cbi 43-0x20,7 |
||
263 | 270 0236 3E9A sbi 39-0x20,6 |
||
264 | 271 0238 469A sbi 40-0x20,6 |
||
265 | 272 023a A0EB ldi r26,lo8(176) |
||
266 | 273 023c B0E0 ldi r27,hi8(176) |
||
267 | 274 023e 8C91 ld r24,X |
||
268 | 275 0240 8F70 andi r24,lo8(15) |
||
269 | 276 0242 8C93 st X,r24 |
||
270 | 277 0244 8C91 ld r24,X |
||
271 | 278 0246 8360 ori r24,lo8(3) |
||
272 | 279 0248 8C93 st X,r24 |
||
273 | 280 024a E1EB ldi r30,lo8(177) |
||
274 | 281 024c F0E0 ldi r31,hi8(177) |
||
275 | 282 024e 8081 ld r24,Z |
||
276 | 283 0250 8B73 andi r24,lo8(59) |
||
277 | 284 0252 8083 st Z,r24 |
||
278 | 285 0254 8081 ld r24,Z |
||
279 | 286 0256 8B60 ori r24,lo8(11) |
||
280 | 287 0258 8083 st Z,r24 |
||
281 | 288 025a 1092 B200 sts 178,__zero_reg__ |
||
282 | 289 025e 8FEF ldi r24,lo8(-1) |
||
283 | 290 0260 8093 B300 sts 179,r24 |
||
284 | 291 0264 8C91 ld r24,X |
||
285 | 292 0266 8068 ori r24,lo8(-128) |
||
286 | 293 0268 8C93 st X,r24 |
||
287 | 294 026a E0E7 ldi r30,lo8(112) |
||
288 | 295 026c F0E0 ldi r31,hi8(112) |
||
289 | 296 026e 8081 ld r24,Z |
||
290 | 297 0270 8A7F andi r24,lo8(-6) |
||
291 | 298 0272 8083 st Z,r24 |
||
292 | 299 0274 8081 ld r24,Z |
||
293 | 300 0276 8260 ori r24,lo8(2) |
||
294 | 301 0278 8083 st Z,r24 |
||
295 | 302 027a 9FBF out 95-0x20,r25 |
||
296 | 303 /* epilogue: frame size=0 */ |
||
297 | 304 027c 0895 ret |
||
298 | 305 /* epilogue end (size=1) */ |
||
299 | 306 /* function TIMER2_Init size 40 (39) */ |
||
300 | 308 .global CalculateServo |
||
301 | 310 CalculateServo: |
||
302 | 311 /* prologue: frame size=2 */ |
||
303 | 312 027e A2E0 ldi r26,lo8(2) |
||
304 | 313 0280 B0E0 ldi r27,hi8(2) |
||
305 | 314 0282 E0E0 ldi r30,pm_lo8(1f) |
||
306 | 315 0284 F0E0 ldi r31,pm_hi8(1f) |
||
307 | 316 0286 0C94 0000 jmp __prologue_saves__+0 |
||
308 | 317 1: |
||
309 | 318 /* prologue end (size=6) */ |
||
310 | 319 028a E091 0000 lds r30,EE_Parameter+55 |
||
311 | 320 028e F0E0 ldi r31,lo8(0) |
||
312 | 321 0290 E050 subi r30,lo8(-(sintab)) |
||
313 | 322 0292 F040 sbci r31,hi8(-(sintab)) |
||
314 | 323 0294 8681 ldd r24,Z+6 |
||
315 | 324 0296 9081 ld r25,Z |
||
316 | 325 0298 2091 0000 lds r18,CalculateServoSignals |
||
317 | 326 029c 482F mov r20,r24 |
||
318 | 327 029e 5527 clr r21 |
||
319 | 328 02a0 47FD sbrc r20,7 |
||
320 | 329 02a2 5095 com r21 |
||
321 | 330 02a4 652F mov r22,r21 |
||
322 | 331 02a6 752F mov r23,r21 |
||
323 | 332 02a8 6090 0000 lds r6,IntegralNick |
||
324 | 333 02ac 7090 0000 lds r7,(IntegralNick)+1 |
||
325 | 334 02b0 8090 0000 lds r8,(IntegralNick)+2 |
||
326 | 335 02b4 9090 0000 lds r9,(IntegralNick)+3 |
||
327 | 336 02b8 292E mov r2,r25 |
||
328 | 337 02ba 3324 clr r3 |
||
329 | 338 02bc 27FC sbrc r2,7 |
||
330 | 339 02be 3094 com r3 |
||
331 | 340 02c0 432C mov r4,r3 |
||
332 | 341 02c2 532C mov r5,r3 |
||
333 | 342 02c4 A090 0000 lds r10,IntegralRoll |
||
334 | 343 02c8 B090 0000 lds r11,(IntegralRoll)+1 |
||
335 | 344 02cc C090 0000 lds r12,(IntegralRoll)+2 |
||
336 | 345 02d0 D090 0000 lds r13,(IntegralRoll)+3 |
||
337 | 346 02d4 8091 0000 lds r24,EE_Parameter+54 |
||
338 | 347 02d8 8983 std Y+1,r24 |
||
339 | 348 02da E091 0000 lds r30,EE_Parameter+101 |
||
340 | 349 02de EA83 std Y+2,r30 |
||
341 | 350 02e0 2130 cpi r18,lo8(1) |
||
342 | 351 02e2 01F0 breq .+2 |
||
343 | 352 02e4 00C0 rjmp .L46 |
||
344 | 353 02e6 CB01 movw r24,r22 |
||
345 | 354 02e8 BA01 movw r22,r20 |
||
346 | 355 02ea A401 movw r20,r8 |
||
347 | 356 02ec 9301 movw r18,r6 |
||
348 | 357 02ee 0E94 0000 call __mulsi3 |
||
349 | 358 02f2 20E8 ldi r18,lo8(128) |
||
350 | 359 02f4 30E0 ldi r19,hi8(128) |
||
351 | 360 02f6 40E0 ldi r20,hlo8(128) |
||
352 | 361 02f8 50E0 ldi r21,hhi8(128) |
||
353 | 362 02fa 0E94 0000 call __divmodsi4 |
||
354 | 363 02fe 7901 movw r14,r18 |
||
355 | 364 0300 8A01 movw r16,r20 |
||
356 | 365 0302 C201 movw r24,r4 |
||
357 | 366 0304 B101 movw r22,r2 |
||
358 | 367 0306 A601 movw r20,r12 |
||
359 | 368 0308 9501 movw r18,r10 |
||
360 | 369 030a 0E94 0000 call __mulsi3 |
||
361 | 370 030e 20E8 ldi r18,lo8(128) |
||
362 | 371 0310 30E0 ldi r19,hi8(128) |
||
363 | 372 0312 40E0 ldi r20,hlo8(128) |
||
364 | 373 0314 50E0 ldi r21,hhi8(128) |
||
365 | 374 0316 0E94 0000 call __divmodsi4 |
||
366 | 375 031a E21A sub r14,r18 |
||
367 | 376 031c F30A sbc r15,r19 |
||
368 | 377 031e 040B sbc r16,r20 |
||
369 | 378 0320 150B sbc r17,r21 |
||
370 | 379 0322 2091 0000 lds r18,EE_Parameter+46 |
||
371 | 380 0326 30E0 ldi r19,lo8(0) |
||
372 | 381 0328 40E0 ldi r20,lo8(0) |
||
373 | 382 032a 50E0 ldi r21,hi8(0) |
||
374 | 383 032c C801 movw r24,r16 |
||
375 | 384 032e B701 movw r22,r14 |
||
376 | 385 0330 0E94 0000 call __mulsi3 |
||
377 | 386 0334 20E0 ldi r18,lo8(512) |
||
378 | 387 0336 32E0 ldi r19,hi8(512) |
||
379 | 388 0338 40E0 ldi r20,hlo8(512) |
||
380 | 389 033a 50E0 ldi r21,hhi8(512) |
||
381 | 390 033c 0E94 0000 call __divmodsi4 |
||
382 | 391 0340 5901 movw r10,r18 |
||
383 | 392 0342 6A01 movw r12,r20 |
||
384 | 393 0344 2091 0000 lds r18,ServoNickOffset |
||
385 | 394 0348 3091 0000 lds r19,(ServoNickOffset)+1 |
||
386 | 395 034c 4091 0000 lds r20,ServoNickOffset |
||
387 | 396 0350 5091 0000 lds r21,(ServoNickOffset)+1 |
||
388 | 397 0354 8091 0000 lds r24,Parameter_ServoNickControl |
||
389 | 398 0358 90E0 ldi r25,lo8(0) |
||
390 | 399 035a F6E0 ldi r31,6 |
||
391 | 400 035c 880F 1: lsl r24 |
||
392 | 401 035e 991F rol r25 |
||
393 | 402 0360 FA95 dec r31 |
||
394 | 403 0362 01F4 brne 1b |
||
395 | 404 0364 F981 ldd r31,Y+1 |
||
396 | 405 0366 6F2F mov r22,r31 |
||
397 | 406 0368 70E0 ldi r23,lo8(0) |
||
398 | 407 036a 841B sub r24,r20 |
||
399 | 408 036c 950B sbc r25,r21 |
||
400 | 409 036e 0E94 0000 call __divmodhi4 |
||
401 | 410 0372 260F add r18,r22 |
||
402 | 411 0374 371F adc r19,r23 |
||
403 | 412 0376 3093 0000 sts (ServoNickOffset)+1,r19 |
||
404 | 413 037a 2093 0000 sts ServoNickOffset,r18 |
||
405 | 414 037e 8091 0000 lds r24,ServoNickOffset |
||
406 | 415 0382 9091 0000 lds r25,(ServoNickOffset)+1 |
||
407 | 416 0386 60E1 ldi r22,lo8(16) |
||
408 | 417 0388 70E0 ldi r23,hi8(16) |
||
409 | 418 038a 0E94 0000 call __divmodhi4 |
||
410 | 419 038e 7093 0000 sts (ServoNickValue)+1,r23 |
||
411 | 420 0392 6093 0000 sts ServoNickValue,r22 |
||
412 | 421 0396 8A81 ldd r24,Y+2 |
||
413 | 422 0398 80FF sbrs r24,0 |
||
414 | 423 039a 00C0 rjmp .L48 |
||
415 | 424 039c 8091 0000 lds r24,ServoNickValue |
||
416 | 425 03a0 9091 0000 lds r25,(ServoNickValue)+1 |
||
417 | 426 03a4 8A0D add r24,r10 |
||
418 | 427 03a6 9B1D adc r25,r11 |
||
419 | 428 03a8 00C0 rjmp .L66 |
||
420 | 429 .L48: |
||
421 | 430 03aa 8091 0000 lds r24,ServoNickValue |
||
422 | 431 03ae 9091 0000 lds r25,(ServoNickValue)+1 |
||
423 | 432 03b2 8A19 sub r24,r10 |
||
424 | 433 03b4 9B09 sbc r25,r11 |
||
425 | 434 .L66: |
||
426 | 435 03b6 9093 0000 sts (ServoNickValue)+1,r25 |
||
427 | 436 03ba 8093 0000 sts ServoNickValue,r24 |
||
428 | 437 03be 2091 0000 lds r18,ServoNickValue |
||
429 | 438 03c2 3091 0000 lds r19,(ServoNickValue)+1 |
||
430 | 439 03c6 8091 0000 lds r24,EE_Parameter+47 |
||
431 | 440 03ca 90E0 ldi r25,lo8(0) |
||
432 | 441 03cc 880F lsl r24 |
||
433 | 442 03ce 991F rol r25 |
||
434 | 443 03d0 880F lsl r24 |
||
435 | 444 03d2 991F rol r25 |
||
436 | 445 03d4 2817 cp r18,r24 |
||
437 | 446 03d6 3907 cpc r19,r25 |
||
438 | 447 03d8 04F0 brlt .L67 |
||
439 | 448 03da 2091 0000 lds r18,ServoNickValue |
||
440 | 449 03de 3091 0000 lds r19,(ServoNickValue)+1 |
||
441 | 450 03e2 8091 0000 lds r24,EE_Parameter+48 |
||
442 | 451 03e6 90E0 ldi r25,lo8(0) |
||
443 | 452 03e8 880F lsl r24 |
||
444 | 453 03ea 991F rol r25 |
||
445 | 454 03ec 880F lsl r24 |
||
446 | 455 03ee 991F rol r25 |
||
447 | 456 03f0 8217 cp r24,r18 |
||
448 | 457 03f2 9307 cpc r25,r19 |
||
449 | 458 03f4 04F4 brge .L53 |
||
450 | 459 .L67: |
||
451 | 460 03f6 9093 0000 sts (ServoNickValue)+1,r25 |
||
452 | 461 03fa 8093 0000 sts ServoNickValue,r24 |
||
453 | 462 .L53: |
||
454 | 463 03fe 8091 0000 lds r24,PlatinenVersion |
||
455 | 464 0402 8431 cpi r24,lo8(20) |
||
456 | 465 0404 00F4 brsh .+2 |
||
457 | 466 0406 00C0 rjmp .L63 |
||
458 | 467 0408 8091 0000 lds r24,CalculateServoSignals |
||
459 | 468 040c 8F5F subi r24,lo8(-(1)) |
||
460 | 469 040e 8093 0000 sts CalculateServoSignals,r24 |
||
461 | 470 0412 00C0 rjmp .L65 |
||
462 | 471 .L46: |
||
463 | 472 0414 CB01 movw r24,r22 |
||
464 | 473 0416 BA01 movw r22,r20 |
||
465 | 474 0418 A601 movw r20,r12 |
||
466 | 475 041a 9501 movw r18,r10 |
||
467 | 476 041c 0E94 0000 call __mulsi3 |
||
468 | 477 0420 20E8 ldi r18,lo8(128) |
||
469 | 478 0422 30E0 ldi r19,hi8(128) |
||
470 | 479 0424 40E0 ldi r20,hlo8(128) |
||
471 | 480 0426 50E0 ldi r21,hhi8(128) |
||
472 | 481 0428 0E94 0000 call __divmodsi4 |
||
473 | 482 042c 7901 movw r14,r18 |
||
474 | 483 042e 8A01 movw r16,r20 |
||
475 | 484 0430 C201 movw r24,r4 |
||
476 | 485 0432 B101 movw r22,r2 |
||
477 | 486 0434 A401 movw r20,r8 |
||
478 | 487 0436 9301 movw r18,r6 |
||
479 | 488 0438 0E94 0000 call __mulsi3 |
||
480 | 489 043c 20E8 ldi r18,lo8(128) |
||
481 | 490 043e 30E0 ldi r19,hi8(128) |
||
482 | 491 0440 40E0 ldi r20,hlo8(128) |
||
483 | 492 0442 50E0 ldi r21,hhi8(128) |
||
484 | 493 0444 0E94 0000 call __divmodsi4 |
||
485 | 494 0448 E20E add r14,r18 |
||
486 | 495 044a F31E adc r15,r19 |
||
487 | 496 044c 041F adc r16,r20 |
||
488 | 497 044e 151F adc r17,r21 |
||
489 | 498 0450 2091 0000 lds r18,EE_Parameter+50 |
||
490 | 499 0454 30E0 ldi r19,lo8(0) |
||
491 | 500 0456 40E0 ldi r20,lo8(0) |
||
492 | 501 0458 50E0 ldi r21,hi8(0) |
||
493 | 502 045a C801 movw r24,r16 |
||
494 | 503 045c B701 movw r22,r14 |
||
495 | 504 045e 0E94 0000 call __mulsi3 |
||
496 | 505 0462 20E0 ldi r18,lo8(512) |
||
497 | 506 0464 32E0 ldi r19,hi8(512) |
||
498 | 507 0466 40E0 ldi r20,hlo8(512) |
||
499 | 508 0468 50E0 ldi r21,hhi8(512) |
||
500 | 509 046a 0E94 0000 call __divmodsi4 |
||
501 | 510 046e 5901 movw r10,r18 |
||
502 | 511 0470 6A01 movw r12,r20 |
||
503 | 512 0472 2091 0000 lds r18,ServoRollOffset |
||
504 | 513 0476 3091 0000 lds r19,(ServoRollOffset)+1 |
||
505 | 514 047a 4091 0000 lds r20,ServoRollOffset |
||
506 | 515 047e 5091 0000 lds r21,(ServoRollOffset)+1 |
||
507 | 516 0482 8091 0000 lds r24,Parameter_ServoRollControl |
||
508 | 517 0486 90E0 ldi r25,lo8(0) |
||
509 | 518 0488 66E0 ldi r22,6 |
||
510 | 519 048a 880F 1: lsl r24 |
||
511 | 520 048c 991F rol r25 |
||
512 | 521 048e 6A95 dec r22 |
||
513 | 522 0490 01F4 brne 1b |
||
514 | 523 0492 E981 ldd r30,Y+1 |
||
515 | 524 0494 6E2F mov r22,r30 |
||
516 | 525 0496 70E0 ldi r23,lo8(0) |
||
517 | 526 0498 841B sub r24,r20 |
||
518 | 527 049a 950B sbc r25,r21 |
||
519 | 528 049c 0E94 0000 call __divmodhi4 |
||
520 | 529 04a0 260F add r18,r22 |
||
521 | 530 04a2 371F adc r19,r23 |
||
522 | 531 04a4 3093 0000 sts (ServoRollOffset)+1,r19 |
||
523 | 532 04a8 2093 0000 sts ServoRollOffset,r18 |
||
524 | 533 04ac 8091 0000 lds r24,ServoRollOffset |
||
525 | 534 04b0 9091 0000 lds r25,(ServoRollOffset)+1 |
||
526 | 535 04b4 60E1 ldi r22,lo8(16) |
||
527 | 536 04b6 70E0 ldi r23,hi8(16) |
||
528 | 537 04b8 0E94 0000 call __divmodhi4 |
||
529 | 538 04bc 7093 0000 sts (ServoRollValue)+1,r23 |
||
530 | 539 04c0 6093 0000 sts ServoRollValue,r22 |
||
531 | 540 04c4 FA81 ldd r31,Y+2 |
||
532 | 541 04c6 F1FF sbrs r31,1 |
||
533 | 542 04c8 00C0 rjmp .L58 |
||
534 | 543 04ca 8091 0000 lds r24,ServoRollValue |
||
535 | 544 04ce 9091 0000 lds r25,(ServoRollValue)+1 |
||
536 | 545 04d2 8A0D add r24,r10 |
||
537 | 546 04d4 9B1D adc r25,r11 |
||
538 | 547 04d6 00C0 rjmp .L68 |
||
539 | 548 .L58: |
||
540 | 549 04d8 8091 0000 lds r24,ServoRollValue |
||
541 | 550 04dc 9091 0000 lds r25,(ServoRollValue)+1 |
||
542 | 551 04e0 8A19 sub r24,r10 |
||
543 | 552 04e2 9B09 sbc r25,r11 |
||
544 | 553 .L68: |
||
545 | 554 04e4 9093 0000 sts (ServoRollValue)+1,r25 |
||
546 | 555 04e8 8093 0000 sts ServoRollValue,r24 |
||
547 | 556 04ec 2091 0000 lds r18,ServoRollValue |
||
548 | 557 04f0 3091 0000 lds r19,(ServoRollValue)+1 |
||
549 | 558 04f4 8091 0000 lds r24,EE_Parameter+51 |
||
550 | 559 04f8 90E0 ldi r25,lo8(0) |
||
551 | 560 04fa 880F lsl r24 |
||
552 | 561 04fc 991F rol r25 |
||
553 | 562 04fe 880F lsl r24 |
||
554 | 563 0500 991F rol r25 |
||
555 | 564 0502 2817 cp r18,r24 |
||
556 | 565 0504 3907 cpc r19,r25 |
||
557 | 566 0506 04F0 brlt .L69 |
||
558 | 567 0508 2091 0000 lds r18,ServoRollValue |
||
559 | 568 050c 3091 0000 lds r19,(ServoRollValue)+1 |
||
560 | 569 0510 8091 0000 lds r24,EE_Parameter+52 |
||
561 | 570 0514 90E0 ldi r25,lo8(0) |
||
562 | 571 0516 880F lsl r24 |
||
563 | 572 0518 991F rol r25 |
||
564 | 573 051a 880F lsl r24 |
||
565 | 574 051c 991F rol r25 |
||
566 | 575 051e 8217 cp r24,r18 |
||
567 | 576 0520 9307 cpc r25,r19 |
||
568 | 577 0522 04F4 brge .L63 |
||
569 | 578 .L69: |
||
570 | 579 0524 9093 0000 sts (ServoRollValue)+1,r25 |
||
571 | 580 0528 8093 0000 sts ServoRollValue,r24 |
||
572 | 581 .L63: |
||
573 | 582 052c 1092 0000 sts CalculateServoSignals,__zero_reg__ |
||
574 | 583 .L65: |
||
575 | 584 /* epilogue: frame size=2 */ |
||
576 | 585 0530 E2E1 ldi r30,18 |
||
577 | 586 0532 CE5F subi r28,-2 |
||
578 | 587 0534 0C94 0000 jmp __epilogue_restores__+0 |
||
579 | 588 /* epilogue end (size=4) */ |
||
580 | 589 /* function CalculateServo size 349 (339) */ |
||
581 | 591 .global __vector_9 |
||
582 | 593 __vector_9: |
||
583 | 594 /* prologue: frame size=0 */ |
||
584 | 595 0538 1F92 push __zero_reg__ |
||
585 | 596 053a 0F92 push __tmp_reg__ |
||
586 | 597 053c 0FB6 in __tmp_reg__,__SREG__ |
||
587 | 598 053e 0F92 push __tmp_reg__ |
||
588 | 599 0540 1124 clr __zero_reg__ |
||
589 | 600 0542 2F93 push r18 |
||
590 | 601 0544 3F93 push r19 |
||
591 | 602 0546 4F93 push r20 |
||
592 | 603 0548 5F93 push r21 |
||
593 | 604 054a 8F93 push r24 |
||
594 | 605 054c 9F93 push r25 |
||
595 | 606 054e EF93 push r30 |
||
596 | 607 0550 FF93 push r31 |
||
597 | 608 /* prologue end (size=13) */ |
||
598 | 609 0552 8091 0000 lds r24,PlatinenVersion |
||
599 | 610 0556 9091 0000 lds r25,PulseOutput.2750 |
||
600 | 611 055a 8431 cpi r24,lo8(20) |
||
601 | 612 055c 00F0 brlo .+2 |
||
602 | 613 055e 00C0 rjmp .L71 |
||
603 | 614 0560 9923 tst r25 |
||
604 | 615 0562 01F0 breq .+2 |
||
605 | 616 0564 00C0 rjmp .L73 |
||
606 | 617 0566 8091 B000 lds r24,176 |
||
607 | 618 056a 86FF sbrs r24,6 |
||
608 | 619 056c 00C0 rjmp .L75 |
||
609 | 620 056e 8091 B000 lds r24,176 |
||
610 | 621 0572 8F7B andi r24,lo8(-65) |
||
611 | 622 0574 8093 B000 sts 176,r24 |
||
612 | 623 0578 8091 0000 lds r24,ServoNickValue |
||
613 | 624 057c 9091 0000 lds r25,(ServoNickValue)+1 |
||
614 | 625 0580 8755 subi r24,lo8(-(425)) |
||
615 | 626 0582 9E4F sbci r25,hi8(-(425)) |
||
616 | 627 0584 9093 0000 sts (RemainingPulse)+1,r25 |
||
617 | 628 0588 8093 0000 sts RemainingPulse,r24 |
||
618 | 629 058c 25E0 ldi r18,hi8(1501) |
||
619 | 630 058e 8D3D cpi r24,lo8(1501) |
||
620 | 631 0590 9207 cpc r25,r18 |
||
621 | 632 0592 00F0 brlo .L77 |
||
622 | 633 0594 8CED ldi r24,lo8(1500) |
||
623 | 634 0596 95E0 ldi r25,hi8(1500) |
||
624 | 635 0598 00C0 rjmp .L114 |
||
625 | 636 .L77: |
||
626 | 637 059a 8757 subi r24,lo8(375) |
||
627 | 638 059c 9140 sbci r25,hi8(375) |
||
628 | 639 059e 00F4 brsh .L79 |
||
629 | 640 05a0 87E7 ldi r24,lo8(375) |
||
630 | 641 05a2 91E0 ldi r25,hi8(375) |
||
631 | 642 .L114: |
||
632 | 643 05a4 9093 0000 sts (RemainingPulse)+1,r25 |
||
633 | 644 05a8 8093 0000 sts RemainingPulse,r24 |
||
634 | 645 .L79: |
||
635 | 646 05ac 8091 0000 lds r24,RemainingPulse |
||
636 | 647 05b0 9091 0000 lds r25,(RemainingPulse)+1 |
||
637 | 648 05b4 00C0 rjmp .L119 |
||
638 | 649 .L75: |
||
639 | 650 05b6 8091 B000 lds r24,176 |
||
640 | 651 05ba 8064 ori r24,lo8(64) |
||
641 | 652 05bc 8093 B000 sts 176,r24 |
||
642 | 653 05c0 8091 0000 lds r24,EE_Parameter+53 |
||
643 | 654 05c4 90E0 ldi r25,lo8(0) |
||
644 | 655 05c6 2DED ldi r18,lo8(1757) |
||
645 | 656 05c8 36E0 ldi r19,hi8(1757) |
||
646 | 657 05ca AC01 movw r20,r24 |
||
647 | 658 05cc 429F mul r20,r18 |
||
648 | 659 05ce C001 movw r24,r0 |
||
649 | 660 05d0 439F mul r20,r19 |
||
650 | 661 05d2 900D add r25,r0 |
||
651 | 662 05d4 529F mul r21,r18 |
||
652 | 663 05d6 900D add r25,r0 |
||
653 | 664 05d8 1124 clr r1 |
||
654 | 665 05da 2091 0000 lds r18,ServoFrameTime.2751 |
||
655 | 666 05de 3091 0000 lds r19,(ServoFrameTime.2751)+1 |
||
656 | 667 05e2 821B sub r24,r18 |
||
657 | 668 05e4 930B sbc r25,r19 |
||
658 | 669 05e6 9093 0000 sts (RemainingPulse)+1,r25 |
||
659 | 670 05ea 8093 0000 sts RemainingPulse,r24 |
||
660 | 671 05ee 81E0 ldi r24,lo8(1) |
||
661 | 672 05f0 8093 0000 sts CalculateServoSignals,r24 |
||
662 | 673 05f4 00C0 rjmp .L87 |
||
663 | 674 .L71: |
||
664 | 675 05f6 9923 tst r25 |
||
665 | 676 05f8 01F0 breq .+2 |
||
666 | 677 05fa 00C0 rjmp .L73 |
||
667 | 678 05fc 8091 B000 lds r24,176 |
||
668 | 679 0600 86FF sbrs r24,6 |
||
669 | 680 0602 00C0 rjmp .L83 |
||
670 | 681 0604 8091 B000 lds r24,176 |
||
671 | 682 0608 8F7B andi r24,lo8(-65) |
||
672 | 683 060a 8093 B000 sts 176,r24 |
||
673 | 684 060e E091 0000 lds r30,ServoIndex.2752 |
||
674 | 685 0612 EE23 tst r30 |
||
675 | 686 0614 01F4 brne .L85 |
||
676 | 687 0616 8091 0000 lds r24,EE_Parameter+53 |
||
677 | 688 061a 90E0 ldi r25,lo8(0) |
||
678 | 689 061c 2DED ldi r18,lo8(1757) |
||
679 | 690 061e 36E0 ldi r19,hi8(1757) |
||
680 | 691 0620 AC01 movw r20,r24 |
||
681 | 692 0622 429F mul r20,r18 |
||
682 | 693 0624 C001 movw r24,r0 |
||
683 | 694 0626 439F mul r20,r19 |
||
684 | 695 0628 900D add r25,r0 |
||
685 | 696 062a 529F mul r21,r18 |
||
686 | 697 062c 900D add r25,r0 |
||
687 | 698 062e 1124 clr r1 |
||
688 | 699 0630 2091 0000 lds r18,ServoFrameTime.2751 |
||
689 | 700 0634 3091 0000 lds r19,(ServoFrameTime.2751)+1 |
||
690 | 701 0638 821B sub r24,r18 |
||
691 | 702 063a 930B sbc r25,r19 |
||
692 | 703 063c 9093 0000 sts (RemainingPulse)+1,r25 |
||
693 | 704 0640 8093 0000 sts RemainingPulse,r24 |
||
694 | 705 0644 1092 0000 sts (ServoFrameTime.2751)+1,__zero_reg__ |
||
695 | 706 0648 1092 0000 sts ServoFrameTime.2751,__zero_reg__ |
||
696 | 707 064c 469A sbi 40-0x20,6 |
||
697 | 708 064e 00C0 rjmp .L87 |
||
698 | 709 .L85: |
||
699 | 710 0650 89EA ldi r24,lo8(937) |
||
700 | 711 0652 93E0 ldi r25,hi8(937) |
||
701 | 712 0654 9093 0000 sts (RemainingPulse)+1,r25 |
||
702 | 713 0658 8093 0000 sts RemainingPulse,r24 |
||
703 | 714 065c E330 cpi r30,lo8(3) |
||
704 | 715 065e 01F0 breq .L91 |
||
705 | 716 0660 E430 cpi r30,lo8(4) |
||
706 | 717 0662 00F4 brsh .L94 |
||
707 | 718 0664 E130 cpi r30,lo8(1) |
||
708 | 719 0666 01F0 breq .L89 |
||
709 | 720 0668 E230 cpi r30,lo8(2) |
||
710 | 721 066a 01F4 brne .L88 |
||
711 | 722 066c 00C0 rjmp .L90 |
||
712 | 723 .L94: |
||
713 | 724 066e E430 cpi r30,lo8(4) |
||
714 | 725 0670 01F0 breq .L92 |
||
715 | 726 0672 E530 cpi r30,lo8(5) |
||
716 | 727 0674 01F4 brne .L88 |
||
717 | 728 0676 00C0 rjmp .L93 |
||
718 | 729 .L89: |
||
719 | 730 0678 8091 0000 lds r24,ServoNickValue |
||
720 | 731 067c 9091 0000 lds r25,(ServoNickValue)+1 |
||
721 | 732 0680 00C0 rjmp .L118 |
||
722 | 733 .L90: |
||
723 | 734 0682 8091 0000 lds r24,ServoRollValue |
||
724 | 735 0686 9091 0000 lds r25,(ServoRollValue)+1 |
||
725 | 736 068a 00C0 rjmp .L118 |
||
726 | 737 .L91: |
||
727 | 738 068c 8091 0000 lds r24,Parameter_Servo3 |
||
728 | 739 0690 00C0 rjmp .L120 |
||
729 | 740 .L92: |
||
730 | 741 0692 8091 0000 lds r24,Parameter_Servo4 |
||
731 | 742 0696 00C0 rjmp .L120 |
||
732 | 743 .L93: |
||
733 | 744 0698 8091 0000 lds r24,Parameter_Servo5 |
||
734 | 745 .L120: |
||
735 | 746 069c 90E0 ldi r25,lo8(0) |
||
736 | 747 069e 880F lsl r24 |
||
737 | 748 06a0 991F rol r25 |
||
738 | 749 06a2 880F lsl r24 |
||
739 | 750 06a4 991F rol r25 |
||
740 | 751 .L118: |
||
741 | 752 06a6 8755 subi r24,lo8(-(425)) |
||
742 | 753 06a8 9E4F sbci r25,hi8(-(425)) |
||
743 | 754 06aa 00C0 rjmp .L115 |
||
744 | 755 .L88: |
||
745 | 756 06ac F0E0 ldi r31,lo8(0) |
||
746 | 757 06ae EE0F lsl r30 |
||
747 | 758 06b0 FF1F rol r31 |
||
748 | 759 06b2 E050 subi r30,lo8(-(PPM_in)) |
||
749 | 760 06b4 F040 sbci r31,hi8(-(PPM_in)) |
||
750 | 761 06b6 8081 ld r24,Z |
||
751 | 762 06b8 9181 ldd r25,Z+1 |
||
752 | 763 06ba 880F lsl r24 |
||
753 | 764 06bc 991F rol r25 |
||
754 | 765 06be 8755 subi r24,lo8(-(937)) |
||
755 | 766 06c0 9C4F sbci r25,hi8(-(937)) |
||
756 | 767 .L115: |
||
757 | 768 06c2 9093 0000 sts (RemainingPulse)+1,r25 |
||
758 | 769 06c6 8093 0000 sts RemainingPulse,r24 |
||
759 | 770 06ca 8091 0000 lds r24,RemainingPulse |
||
760 | 771 06ce 9091 0000 lds r25,(RemainingPulse)+1 |
||
761 | 772 06d2 55E0 ldi r21,hi8(1501) |
||
762 | 773 06d4 8D3D cpi r24,lo8(1501) |
||
763 | 774 06d6 9507 cpc r25,r21 |
||
764 | 775 06d8 00F0 brlo .L96 |
||
765 | 776 06da 8CED ldi r24,lo8(1500) |
||
766 | 777 06dc 95E0 ldi r25,hi8(1500) |
||
767 | 778 06de 00C0 rjmp .L116 |
||
768 | 779 .L96: |
||
769 | 780 06e0 8757 subi r24,lo8(375) |
||
770 | 781 06e2 9140 sbci r25,hi8(375) |
||
771 | 782 06e4 00F4 brsh .L98 |
||
772 | 783 06e6 87E7 ldi r24,lo8(375) |
||
773 | 784 06e8 91E0 ldi r25,hi8(375) |
||
774 | 785 .L116: |
||
775 | 786 06ea 9093 0000 sts (RemainingPulse)+1,r25 |
||
776 | 787 06ee 8093 0000 sts RemainingPulse,r24 |
||
777 | 788 .L98: |
||
778 | 789 06f2 2091 0000 lds r18,RemainingPulse |
||
779 | 790 06f6 3091 0000 lds r19,(RemainingPulse)+1 |
||
780 | 791 06fa 2C5B subi r18,lo8(-(-188)) |
||
781 | 792 06fc 3040 sbci r19,hi8(-(-188)) |
||
782 | 793 06fe 3093 0000 sts (RemainingPulse)+1,r19 |
||
783 | 794 0702 2093 0000 sts RemainingPulse,r18 |
||
784 | 795 0706 8091 0000 lds r24,ServoFrameTime.2751 |
||
785 | 796 070a 9091 0000 lds r25,(ServoFrameTime.2751)+1 |
||
786 | 797 070e 820F add r24,r18 |
||
787 | 798 0710 931F adc r25,r19 |
||
788 | 799 .L119: |
||
789 | 800 0712 9093 0000 sts (ServoFrameTime.2751)+1,r25 |
||
790 | 801 0716 8093 0000 sts ServoFrameTime.2751,r24 |
||
791 | 802 071a 00C0 rjmp .L87 |
||
792 | 803 .L83: |
||
793 | 804 071c 8091 B000 lds r24,176 |
||
794 | 805 0720 8064 ori r24,lo8(64) |
||
795 | 806 0722 8093 B000 sts 176,r24 |
||
796 | 807 0726 8CEB ldi r24,lo8(188) |
||
797 | 808 0728 90E0 ldi r25,hi8(188) |
||
798 | 809 072a 9093 0000 sts (RemainingPulse)+1,r25 |
||
799 | 810 072e 8093 0000 sts RemainingPulse,r24 |
||
800 | 811 0732 8091 0000 lds r24,ServoFrameTime.2751 |
||
801 | 812 0736 9091 0000 lds r25,(ServoFrameTime.2751)+1 |
||
802 | 813 073a 8454 subi r24,lo8(-(188)) |
||
803 | 814 073c 9F4F sbci r25,hi8(-(188)) |
||
804 | 815 073e 9093 0000 sts (ServoFrameTime.2751)+1,r25 |
||
805 | 816 0742 8093 0000 sts ServoFrameTime.2751,r24 |
||
806 | 817 0746 8091 0000 lds r24,ServoActive |
||
807 | 818 074a 8823 tst r24 |
||
808 | 819 074c 01F0 breq .L100 |
||
809 | 820 074e 8091 0000 lds r24,SenderOkay |
||
810 | 821 0752 8333 cpi r24,lo8(51) |
||
811 | 822 0754 00F4 brsh .L102 |
||
812 | 823 .L100: |
||
813 | 824 0756 8091 0000 lds r24,ServoActive |
||
814 | 825 075a 8230 cpi r24,lo8(2) |
||
815 | 826 075c 01F4 brne .L103 |
||
816 | 827 .L102: |
||
817 | 828 075e 4698 cbi 40-0x20,6 |
||
818 | 829 0760 00C0 rjmp .L104 |
||
819 | 830 .L103: |
||
820 | 831 0762 469A sbi 40-0x20,6 |
||
821 | 832 .L104: |
||
822 | 833 0764 8091 0000 lds r24,ServoIndex.2752 |
||
823 | 834 0768 8F5F subi r24,lo8(-(1)) |
||
824 | 835 076a 8093 0000 sts ServoIndex.2752,r24 |
||
825 | 836 076e 9091 0000 lds r25,EE_Parameter+53 |
||
826 | 837 0772 9817 cp r25,r24 |
||
827 | 838 0774 00F4 brsh .L87 |
||
828 | 839 0776 81E0 ldi r24,lo8(1) |
||
829 | 840 0778 8093 0000 sts CalculateServoSignals,r24 |
||
830 | 841 077c 1092 0000 sts ServoIndex.2752,__zero_reg__ |
||
831 | 842 .L87: |
||
832 | 843 0780 81E0 ldi r24,lo8(1) |
||
833 | 844 0782 8093 0000 sts PulseOutput.2750,r24 |
||
834 | 845 .L73: |
||
835 | 846 0786 2091 0000 lds r18,RemainingPulse |
||
836 | 847 078a 3091 0000 lds r19,(RemainingPulse)+1 |
||
837 | 848 078e 41E0 ldi r20,hi8(383) |
||
838 | 849 0790 2F37 cpi r18,lo8(383) |
||
839 | 850 0792 3407 cpc r19,r20 |
||
840 | 851 0794 00F0 brlo .L106 |
||
841 | 852 0796 8FEF ldi r24,lo8(-1) |
||
842 | 853 0798 8093 B300 sts 179,r24 |
||
843 | 854 079c 2F5F subi r18,lo8(-(-255)) |
||
844 | 855 079e 3040 sbci r19,hi8(-(-255)) |
||
845 | 856 07a0 00C0 rjmp .L117 |
||
846 | 857 .L106: |
||
847 | 858 07a2 2F3F cpi r18,255 |
||
848 | 859 07a4 3105 cpc r19,__zero_reg__ |
||
849 | 860 07a6 01F0 breq .L109 |
||
850 | 861 07a8 00F0 brlo .L109 |
||
851 | 862 07aa 51E0 ldi r21,hi8(382) |
||
852 | 863 07ac 2E37 cpi r18,lo8(382) |
||
853 | 864 07ae 3507 cpc r19,r21 |
||
854 | 865 07b0 01F0 breq .L111 |
||
855 | 866 07b2 80E8 ldi r24,lo8(-128) |
||
856 | 867 07b4 8093 B300 sts 179,r24 |
||
857 | 868 07b8 2058 subi r18,lo8(-(-128)) |
||
858 | 869 07ba 3040 sbci r19,hi8(-(-128)) |
||
859 | 870 .L117: |
||
860 | 871 07bc 3093 0000 sts (RemainingPulse)+1,r19 |
||
861 | 872 07c0 2093 0000 sts RemainingPulse,r18 |
||
862 | 873 07c4 00C0 rjmp .L113 |
||
863 | 874 .L111: |
||
864 | 875 07c6 8FEF ldi r24,lo8(-1) |
||
865 | 876 07c8 8093 B300 sts 179,r24 |
||
866 | 877 07cc 8FE7 ldi r24,lo8(127) |
||
867 | 878 07ce 90E0 ldi r25,hi8(127) |
||
868 | 879 07d0 9093 0000 sts (RemainingPulse)+1,r25 |
||
869 | 880 07d4 8093 0000 sts RemainingPulse,r24 |
||
870 | 881 07d8 00C0 rjmp .L113 |
||
871 | 882 .L109: |
||
872 | 883 07da 2093 B300 sts 179,r18 |
||
873 | 884 07de 1092 0000 sts (RemainingPulse)+1,__zero_reg__ |
||
874 | 885 07e2 1092 0000 sts RemainingPulse,__zero_reg__ |
||
875 | 886 07e6 1092 0000 sts PulseOutput.2750,__zero_reg__ |
||
876 | 887 .L113: |
||
877 | 888 /* epilogue: frame size=0 */ |
||
878 | 889 07ea FF91 pop r31 |
||
879 | 890 07ec EF91 pop r30 |
||
880 | 891 07ee 9F91 pop r25 |
||
881 | 892 07f0 8F91 pop r24 |
||
882 | 893 07f2 5F91 pop r21 |
||
883 | 894 07f4 4F91 pop r20 |
||
884 | 895 07f6 3F91 pop r19 |
||
885 | 896 07f8 2F91 pop r18 |
||
886 | 897 07fa 0F90 pop __tmp_reg__ |
||
887 | 898 07fc 0FBE out __SREG__,__tmp_reg__ |
||
888 | 899 07fe 0F90 pop __tmp_reg__ |
||
889 | 900 0800 1F90 pop __zero_reg__ |
||
890 | 901 0802 1895 reti |
||
891 | 902 /* epilogue end (size=13) */ |
||
892 | 903 /* function __vector_9 size 360 (334) */ |
||
893 | 905 .global Timer_Init |
||
894 | 907 Timer_Init: |
||
895 | 908 /* prologue: frame size=0 */ |
||
896 | 909 /* prologue end (size=0) */ |
||
897 | 910 0804 8091 0000 lds r24,CountMilliseconds |
||
898 | 911 0808 9091 0000 lds r25,(CountMilliseconds)+1 |
||
899 | 912 080c 0B96 adiw r24,11 |
||
900 | 913 080e 9093 0000 sts (tim_main)+1,r25 |
||
901 | 914 0812 8093 0000 sts tim_main,r24 |
||
902 | 915 0816 82E0 ldi r24,lo8(2) |
||
903 | 916 0818 85BD out 69-0x20,r24 |
||
904 | 917 081a 83EA ldi r24,lo8(-93) |
||
905 | 918 081c 84BD out 68-0x20,r24 |
||
906 | 919 081e 17BC out 71-0x20,__zero_reg__ |
||
907 | 920 0820 84EB ldi r24,lo8(-76) |
||
908 | 921 0822 88BD out 72-0x20,r24 |
||
909 | 922 0824 86E0 ldi r24,lo8(6) |
||
910 | 923 0826 86BD out 70-0x20,r24 |
||
911 | 924 0828 EEE6 ldi r30,lo8(110) |
||
912 | 925 082a F0E0 ldi r31,hi8(110) |
||
913 | 926 082c 8081 ld r24,Z |
||
914 | 927 082e 8160 ori r24,lo8(1) |
||
915 | 928 0830 8083 st Z,r24 |
||
916 | 929 /* epilogue: frame size=0 */ |
||
917 | 930 0832 0895 ret |
||
918 | 931 /* epilogue end (size=1) */ |
||
919 | 932 /* function Timer_Init size 24 (23) */ |
||
920 | 934 .global Delay_ms_Mess |
||
921 | 936 Delay_ms_Mess: |
||
922 | 937 /* prologue: frame size=0 */ |
||
923 | 938 /* prologue end (size=0) */ |
||
924 | 939 0834 AC01 movw r20,r24 |
||
925 | 940 0836 2091 0000 lds r18,CountMilliseconds |
||
926 | 941 083a 3091 0000 lds r19,(CountMilliseconds)+1 |
||
927 | 942 083e 2F5F subi r18,lo8(-(1)) |
||
928 | 943 0840 3F4F sbci r19,hi8(-(1)) |
||
929 | 944 0842 00C0 rjmp .L132 |
||
930 | 945 .L125: |
||
931 | 946 0844 8091 0000 lds r24,AdReady |
||
932 | 947 0848 8823 tst r24 |
||
933 | 948 084a 01F0 breq .L132 |
||
934 | 949 084c 1092 0000 sts AdReady,__zero_reg__ |
||
935 | 950 0850 8FEC ldi r24,lo8(-49) |
||
936 | 951 0852 8093 7A00 sts 122,r24 |
||
937 | 952 .L132: |
||
938 | 953 0856 8091 0000 lds r24,CountMilliseconds |
||
939 | 954 085a 9091 0000 lds r25,(CountMilliseconds)+1 |
||
940 | 955 085e B901 movw r22,r18 |
||
941 | 956 0860 681B sub r22,r24 |
||
942 | 957 0862 790B sbc r23,r25 |
||
943 | 958 0864 CB01 movw r24,r22 |
||
944 | 959 0866 840F add r24,r20 |
||
945 | 960 0868 951F adc r25,r21 |
||
946 | 961 086a 8070 andi r24,lo8(-32768) |
||
947 | 962 086c 9078 andi r25,hi8(-32768) |
||
948 | 963 086e 892F mov r24,r25 |
||
949 | 964 0870 9927 clr r25 |
||
950 | 965 0872 8695 lsr r24 |
||
951 | 966 0874 8823 tst r24 |
||
952 | 967 0876 01F0 breq .L125 |
||
953 | 968 /* epilogue: frame size=0 */ |
||
954 | 969 0878 0895 ret |
||
955 | 970 /* epilogue end (size=1) */ |
||
956 | 971 /* function Delay_ms_Mess size 35 (34) */ |
||
957 | 973 .global Delay_ms |
||
958 | 975 Delay_ms: |
||
959 | 976 /* prologue: frame size=0 */ |
||
960 | 977 /* prologue end (size=0) */ |
||
961 | 978 087a AC01 movw r20,r24 |
||
962 | 979 087c 2091 0000 lds r18,CountMilliseconds |
||
963 | 980 0880 3091 0000 lds r19,(CountMilliseconds)+1 |
||
964 | 981 0884 2F5F subi r18,lo8(-(1)) |
||
965 | 982 0886 3F4F sbci r19,hi8(-(1)) |
||
966 | 983 .L134: |
||
967 | 984 0888 8091 0000 lds r24,CountMilliseconds |
||
968 | 985 088c 9091 0000 lds r25,(CountMilliseconds)+1 |
||
969 | 986 0890 B901 movw r22,r18 |
||
970 | 987 0892 681B sub r22,r24 |
||
971 | 988 0894 790B sbc r23,r25 |
||
972 | 989 0896 CB01 movw r24,r22 |
||
973 | 990 0898 840F add r24,r20 |
||
974 | 991 089a 951F adc r25,r21 |
||
975 | 992 089c 8070 andi r24,lo8(-32768) |
||
976 | 993 089e 9078 andi r25,hi8(-32768) |
||
977 | 994 08a0 892F mov r24,r25 |
||
978 | 995 08a2 9927 clr r25 |
||
979 | 996 08a4 8695 lsr r24 |
||
980 | 997 08a6 8823 tst r24 |
||
981 | 998 08a8 01F0 breq .L134 |
||
982 | 999 /* epilogue: frame size=0 */ |
||
983 | 1000 08aa 0895 ret |
||
984 | 1001 /* epilogue end (size=1) */ |
||
985 | 1002 /* function Delay_ms size 25 (24) */ |
||
986 | 1004 .global CountMilliseconds |
||
987 | 1005 .global CountMilliseconds |
||
988 | 1006 .section .bss |
||
989 | 1009 CountMilliseconds: |
||
990 | 1010 0000 0000 .skip 2,0 |
||
991 | 1011 .global UpdateMotor |
||
992 | 1012 .global UpdateMotor |
||
993 | 1015 UpdateMotor: |
||
994 | 1016 0002 00 .skip 1,0 |
||
995 | 1017 .global cntKompass |
||
996 | 1018 .global cntKompass |
||
997 | 1021 cntKompass: |
||
998 | 1022 0003 0000 .skip 2,0 |
||
999 | 1023 .global beeptime |
||
1000 | 1024 .global beeptime |
||
1001 | 1027 beeptime: |
||
1002 | 1028 0005 0000 .skip 2,0 |
||
1003 | 1029 .global SendSPI |
||
1004 | 1030 .global SendSPI |
||
1005 | 1033 SendSPI: |
||
1006 | 1034 0007 00 .skip 1,0 |
||
1007 | 1035 .global ServoActive |
||
1008 | 1036 .global ServoActive |
||
1009 | 1039 ServoActive: |
||
1010 | 1040 0008 00 .skip 1,0 |
||
1011 | 1041 .global CalculateServoSignals |
||
1012 | 1042 .data |
||
1013 | 1045 CalculateServoSignals: |
||
1014 | 1046 0000 01 .byte 1 |
||
1015 | 1047 .global RemainingPulse |
||
1016 | 1048 .global RemainingPulse |
||
1017 | 1049 .section .bss |
||
1018 | 1052 RemainingPulse: |
||
1019 | 1053 0009 0000 .skip 2,0 |
||
1020 | 1054 .global ServoNickOffset |
||
1021 | 1055 .data |
||
1022 | 1058 ServoNickOffset: |
||
1023 | 1059 0001 C01F .word 8128 |
||
1024 | 1060 .global ServoRollOffset |
||
1025 | 1063 ServoRollOffset: |
||
1026 | 1064 0003 C01F .word 8128 |
||
1027 | 1065 .global BeepMuster |
||
1028 | 1068 BeepMuster: |
||
1029 | 1069 0005 FFFF .word -1 |
||
1030 | 1070 .global ServoNickValue |
||
1031 | 1071 .global ServoNickValue |
||
1032 | 1072 .section .bss |
||
1033 | 1075 ServoNickValue: |
||
1034 | 1076 000b 0000 .skip 2,0 |
||
1035 | 1077 .global ServoRollValue |
||
1036 | 1078 .global ServoRollValue |
||
1037 | 1081 ServoRollValue: |
||
1038 | 1082 000d 0000 .skip 2,0 |
||
1039 | 1083 .lcomm ServoIndex.2752,1 |
||
1040 | 1084 .lcomm ServoFrameTime.2751,2 |
||
1041 | 1085 .lcomm PulseOutput.2750,1 |
||
1042 | 1086 .lcomm compass_active.2509,1 |
||
1043 | 1087 .lcomm cnt.2508,1 |
||
1044 | 1088 .data |
||
1045 | 1091 cnt_1ms.2507: |
||
1046 | 1092 0007 01 .byte 1 |
||
1047 | 1093 .lcomm tim_main,2 |
||
1048 | 1094 /* File "timer0.c": code 1117 = 0x045d (1047), prologues 33, epilogues 37 */ |
||
1049 | DEFINED SYMBOLS |
||
1050 | *ABS*:00000000 timer0.c |
||
1051 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:2 *ABS*:0000003f __SREG__ |
||
1052 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:3 *ABS*:0000003e __SP_H__ |
||
1053 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:4 *ABS*:0000003d __SP_L__ |
||
1054 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:5 *ABS*:00000000 __tmp_reg__ |
||
1055 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:6 *ABS*:00000001 __zero_reg__ |
||
1056 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:12 .text:00000000 __vector_18 |
||
1057 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1033 .bss:00000007 SendSPI |
||
1058 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1086 .bss:00000014 cnt.2508 |
||
1059 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1009 .bss:00000000 CountMilliseconds |
||
1060 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1091 .data:00000007 cnt_1ms.2507 |
||
1061 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1015 .bss:00000002 UpdateMotor |
||
1062 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1085 .bss:00000013 compass_active.2509 |
||
1063 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1027 .bss:00000005 beeptime |
||
1064 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1068 .data:00000005 BeepMuster |
||
1065 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1021 .bss:00000003 cntKompass |
||
1066 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:227 .text:00000206 SetDelay |
||
1067 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:243 .text:00000218 CheckDelay |
||
1068 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:262 .text:00000230 TIMER2_Init |
||
1069 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:310 .text:0000027e CalculateServo |
||
1070 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1045 .data:00000000 CalculateServoSignals |
||
1071 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1058 .data:00000001 ServoNickOffset |
||
1072 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1075 .bss:0000000b ServoNickValue |
||
1073 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1063 .data:00000003 ServoRollOffset |
||
1074 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1081 .bss:0000000d ServoRollValue |
||
1075 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:593 .text:00000538 __vector_9 |
||
1076 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1084 .bss:00000012 PulseOutput.2750 |
||
1077 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1052 .bss:00000009 RemainingPulse |
||
1078 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1083 .bss:00000010 ServoFrameTime.2751 |
||
1079 | .bss:0000000f ServoIndex.2752 |
||
1080 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1039 .bss:00000008 ServoActive |
||
1081 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:907 .text:00000804 Timer_Init |
||
1082 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1087 .bss:00000015 tim_main |
||
1083 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:936 .text:00000834 Delay_ms_Mess |
||
1084 | C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:975 .text:0000087a Delay_ms |
||
1085 | |||
1086 | UNDEFINED SYMBOLS |
||
1087 | __do_copy_data |
||
1088 | __do_clear_bss |
||
1089 | SpektrumTimer |
||
1090 | PlatinenVersion |
||
1091 | NaviDataOkay |
||
1092 | EE_Parameter |
||
1093 | __udivmodhi4 |
||
1094 | KompassValue |
||
1095 | KompassStartwert |
||
1096 | __divmodhi4 |
||
1097 | KompassRichtung |
||
1098 | __prologue_saves__ |
||
1099 | sintab |
||
1100 | IntegralNick |
||
1101 | IntegralRoll |
||
1102 | __mulsi3 |
||
1103 | __divmodsi4 |
||
1104 | Parameter_ServoNickControl |
||
1105 | Parameter_ServoRollControl |
||
1106 | __epilogue_restores__ |
||
1107 | Parameter_Servo3 |
||
1108 | Parameter_Servo4 |
||
1109 | Parameter_Servo5 |
||
1110 | PPM_in |
||
1111 | SenderOkay |
||
1112 | AdReady |