Blame | Last modification | View Log | RSS feed
1 .file "timer0.c"
2 .arch atmega644
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .text
11 .global __vector_18
13 __vector_18:
14 /* prologue: frame size=0 */
15 0000 1F92 push __zero_reg__
16 0002 0F92 push __tmp_reg__
17 0004 0FB6 in __tmp_reg__,__SREG__
18 0006 0F92 push __tmp_reg__
19 0008 1124 clr __zero_reg__
20 000a 2F93 push r18
21 000c 3F93 push r19
22 000e 5F93 push r21
23 0010 6F93 push r22
24 0012 7F93 push r23
25 0014 8F93 push r24
26 0016 9F93 push r25
27 0018 AF93 push r26
28 001a BF93 push r27
29 /* prologue end (size=14) */
30 001c 8091 0000 lds r24,cnt.1951
31 0020 8150 subi r24,lo8(-(-1))
32 0022 8093 0000 sts cnt.1951,r24
33 0026 8F3F cpi r24,lo8(-1)
34 0028 01F4 brne .L2
35 002a 89E0 ldi r24,lo8(9)
36 002c 8093 0000 sts cnt.1951,r24
37 0030 8091 0000 lds r24,cnt_1ms.1950
38 0034 8F5F subi r24,lo8(-(1))
39 0036 8170 andi r24,lo8(1)
40 0038 8093 0000 sts cnt_1ms.1950,r24
41 003c 8823 tst r24
42 003e 01F4 brne .L4
43 0040 81E0 ldi r24,lo8(1)
44 0042 8093 0000 sts UpdateMotor,r24
45 .L4:
46 0046 8091 0000 lds r24,CountMilliseconds
47 004a 9091 0000 lds r25,(CountMilliseconds)+1
48 004e 0196 adiw r24,1
49 0050 9093 0000 sts (CountMilliseconds)+1,r25
50 0054 8093 0000 sts CountMilliseconds,r24
51 0058 8091 0000 lds r24,Timeout
52 005c 8823 tst r24
53 005e 01F0 breq .L2
54 0060 8091 0000 lds r24,Timeout
55 0064 8150 subi r24,lo8(-(-1))
56 0066 8093 0000 sts Timeout,r24
57 .L2:
58 006a 8091 0000 lds r24,beeptime
59 006e 9091 0000 lds r25,(beeptime)+1
60 0072 0297 sbiw r24,2
61 0074 00F0 brlo .L7
62 0076 8091 0000 lds r24,beeptime
63 007a 9091 0000 lds r25,(beeptime)+1
64 007e 0197 sbiw r24,1
65 0080 9093 0000 sts (beeptime)+1,r25
66 0084 8093 0000 sts beeptime,r24
67 0088 5A9A sbi 43-0x20,2
68 008a 00C0 rjmp .L9
69 .L7:
70 008c 5A98 cbi 43-0x20,2
71 .L9:
72 008e 8091 0000 lds r24,EE_Parameter+8
73 0092 83FF sbrs r24,3
74 0094 00C0 rjmp .L20
75 0096 349B sbis 38-0x20,4
76 0098 00C0 rjmp .L12
77 009a 8091 0000 lds r24,cntKompass
78 009e 9091 0000 lds r25,(cntKompass)+1
79 00a2 0196 adiw r24,1
80 00a4 9093 0000 sts (cntKompass)+1,r25
81 00a8 8093 0000 sts cntKompass,r24
82 00ac 00C0 rjmp .L20
83 .L12:
84 00ae 8091 0000 lds r24,cntKompass
85 00b2 9091 0000 lds r25,(cntKompass)+1
86 00b6 892B or r24,r25
87 00b8 01F0 breq .L14
88 00ba 8091 0000 lds r24,cntKompass
89 00be 9091 0000 lds r25,(cntKompass)+1
90 00c2 805A subi r24,lo8(4000)
91 00c4 9F40 sbci r25,hi8(4000)
92 00c6 00F4 brsh .L14
93 00c8 8091 0000 lds r24,cntKompass
94 00cc 9091 0000 lds r25,(cntKompass)+1
95 00d0 9093 0000 sts (KompassValue)+1,r25
96 00d4 8093 0000 sts KompassValue,r24
97 00d8 8091 0000 lds r24,KompassValue
98 00dc 9091 0000 lds r25,(KompassValue)+1
99 00e0 8758 subi r24,lo8(-(-135))
100 00e2 9040 sbci r25,hi8(-(-135))
101 00e4 9093 0000 sts (KompassValue)+1,r25
102 00e8 8093 0000 sts KompassValue,r24
103 00ec 8091 0000 lds r24,KompassValue
104 00f0 9091 0000 lds r25,(KompassValue)+1
105 00f4 97FF sbrs r25,7
106 00f6 00C0 rjmp .L17
107 00f8 8091 0000 lds r24,KompassValue
108 00fc 9091 0000 lds r25,(KompassValue)+1
109 0100 8859 subi r24,lo8(-(360))
110 0102 9E4F sbci r25,hi8(-(360))
111 0104 9093 0000 sts (KompassValue)+1,r25
112 0108 8093 0000 sts KompassValue,r24
113 .L17:
114 010c 8091 0000 lds r24,KompassValue
115 0110 9091 0000 lds r25,(KompassValue)+1
116 0114 8856 subi r24,lo8(360)
117 0116 9140 sbci r25,hi8(360)
118 0118 04F0 brlt .L14
119 011a 8091 0000 lds r24,KompassValue
120 011e 9091 0000 lds r25,(KompassValue)+1
121 0122 8856 subi r24,lo8(-(-360))
122 0124 9140 sbci r25,hi8(-(-360))
123 0126 9093 0000 sts (KompassValue)+1,r25
124 012a 8093 0000 sts KompassValue,r24
125 .L14:
126 012e 1092 0000 sts (cntKompass)+1,__zero_reg__
127 0132 1092 0000 sts cntKompass,__zero_reg__
128 0136 8091 0000 lds r24,KompassValue
129 013a 9091 0000 lds r25,(KompassValue)+1
130 013e 2091 0000 lds r18,KompassStartwert
131 0142 3091 0000 lds r19,(KompassStartwert)+1
132 0146 821B sub r24,r18
133 0148 930B sbc r25,r19
134 014a 845E subi r24,lo8(-(540))
135 014c 9D4F sbci r25,hi8(-(540))
136 014e 68E6 ldi r22,lo8(360)
137 0150 71E0 ldi r23,hi8(360)
138 0152 0E94 0000 call __divmodhi4
139 0156 845B subi r24,lo8(-(-180))
140 0158 9040 sbci r25,hi8(-(-180))
141 015a 9093 0000 sts (KompassRichtung)+1,r25
142 015e 8093 0000 sts KompassRichtung,r24
143 .L20:
144 /* epilogue: frame size=0 */
145 0162 BF91 pop r27
146 0164 AF91 pop r26
147 0166 9F91 pop r25
148 0168 8F91 pop r24
149 016a 7F91 pop r23
150 016c 6F91 pop r22
151 016e 5F91 pop r21
152 0170 3F91 pop r19
153 0172 2F91 pop r18
154 0174 0F90 pop __tmp_reg__
155 0176 0FBE out __SREG__,__tmp_reg__
156 0178 0F90 pop __tmp_reg__
157 017a 1F90 pop __zero_reg__
158 017c 1895 reti
159 /* epilogue end (size=14) */
160 /* function __vector_18 size 194 (166) */
162 .global SetDelay
164 SetDelay:
165 /* prologue: frame size=0 */
166 /* prologue end (size=0) */
167 017e 2091 0000 lds r18,CountMilliseconds
168 0182 3091 0000 lds r19,(CountMilliseconds)+1
169 0186 2F5F subi r18,lo8(-(1))
170 0188 3F4F sbci r19,hi8(-(1))
171 018a 820F add r24,r18
172 018c 931F adc r25,r19
173 /* epilogue: frame size=0 */
174 018e 0895 ret
175 /* epilogue end (size=1) */
176 /* function SetDelay size 9 (8) */
178 .global CheckDelay
180 CheckDelay:
181 /* prologue: frame size=0 */
182 /* prologue end (size=0) */
183 0190 2091 0000 lds r18,CountMilliseconds
184 0194 3091 0000 lds r19,(CountMilliseconds)+1
185 0198 821B sub r24,r18
186 019a 930B sbc r25,r19
187 019c 892F mov r24,r25
188 019e 9927 clr r25
189 01a0 8695 lsr r24
190 01a2 8074 andi r24,lo8(64)
191 01a4 9927 clr r25
192 /* epilogue: frame size=0 */
193 01a6 0895 ret
194 /* epilogue end (size=1) */
195 /* function CheckDelay size 12 (11) */
197 .global __vector_9
199 __vector_9:
200 /* prologue: frame size=0 */
201 01a8 1F92 push __zero_reg__
202 01aa 0F92 push __tmp_reg__
203 01ac 0FB6 in __tmp_reg__,__SREG__
204 01ae 0F92 push __tmp_reg__
205 01b0 1124 clr __zero_reg__
206 01b2 EF92 push r14
207 01b4 FF92 push r15
208 01b6 0F93 push r16
209 01b8 1F93 push r17
210 01ba 2F93 push r18
211 01bc 3F93 push r19
212 01be 4F93 push r20
213 01c0 5F93 push r21
214 01c2 6F93 push r22
215 01c4 7F93 push r23
216 01c6 8F93 push r24
217 01c8 9F93 push r25
218 01ca AF93 push r26
219 01cc BF93 push r27
220 01ce CF93 push r28
221 01d0 DF93 push r29
222 01d2 EF93 push r30
223 01d4 FF93 push r31
224 /* prologue end (size=23) */
225 01d6 8091 0000 lds r24,timer.2045
226 01da 8150 subi r24,lo8(-(-1))
227 01dc 8093 0000 sts timer.2045,r24
228 01e0 8F3F cpi r24,lo8(-1)
229 01e2 01F0 breq .+2
230 01e4 00C0 rjmp .L26
231 01e6 83E8 ldi r24,lo8(-125)
232 01e8 8093 B000 sts 176,r24
233 01ec 8091 0000 lds r24,Parameter_ServoNickControl
234 01f0 C82F mov r28,r24
235 01f2 DD27 clr r29
236 01f4 D093 0000 sts (ServoValue)+1,r29
237 01f8 C093 0000 sts ServoValue,r28
238 01fc 8091 0000 lds r24,EE_Parameter+38
239 0200 E090 0000 lds r14,EE_Parameter+34
240 0204 80FF sbrs r24,0
241 0206 00C0 rjmp .L28
242 0208 6091 0000 lds r22,IntegralNick
243 020c 7091 0000 lds r23,(IntegralNick)+1
244 0210 8091 0000 lds r24,(IntegralNick)+2
245 0214 9091 0000 lds r25,(IntegralNick)+3
246 0218 FF24 clr r15
247 021a 0027 clr r16
248 021c 1127 clr r17
249 021e 20E8 ldi r18,lo8(128)
250 0220 30E0 ldi r19,hi8(128)
251 0222 40E0 ldi r20,hlo8(128)
252 0224 50E0 ldi r21,hhi8(128)
253 0226 0E94 0000 call __divmodsi4
254 022a C801 movw r24,r16
255 022c B701 movw r22,r14
256 022e 0E94 0000 call __mulsi3
257 0232 20E0 ldi r18,lo8(512)
258 0234 32E0 ldi r19,hi8(512)
259 0236 40E0 ldi r20,hlo8(512)
260 0238 50E0 ldi r21,hhi8(512)
261 023a 0E94 0000 call __divmodsi4
262 023e C20F add r28,r18
263 0240 D31F adc r29,r19
264 0242 00C0 rjmp .L37
265 .L28:
266 0244 6091 0000 lds r22,IntegralNick
267 0248 7091 0000 lds r23,(IntegralNick)+1
268 024c 8091 0000 lds r24,(IntegralNick)+2
269 0250 9091 0000 lds r25,(IntegralNick)+3
270 0254 FF24 clr r15
271 0256 0027 clr r16
272 0258 1127 clr r17
273 025a 20E8 ldi r18,lo8(128)
274 025c 30E0 ldi r19,hi8(128)
275 025e 40E0 ldi r20,hlo8(128)
276 0260 50E0 ldi r21,hhi8(128)
277 0262 0E94 0000 call __divmodsi4
278 0266 C801 movw r24,r16
279 0268 B701 movw r22,r14
280 026a 0E94 0000 call __mulsi3
281 026e 20E0 ldi r18,lo8(512)
282 0270 32E0 ldi r19,hi8(512)
283 0272 40E0 ldi r20,hlo8(512)
284 0274 50E0 ldi r21,hhi8(512)
285 0276 0E94 0000 call __divmodsi4
286 027a C21B sub r28,r18
287 027c D30B sbc r29,r19
288 .L37:
289 027e D093 0000 sts (ServoValue)+1,r29
290 0282 C093 0000 sts ServoValue,r28
291 0286 2091 0000 lds r18,ServoValue
292 028a 3091 0000 lds r19,(ServoValue)+1
293 028e 8091 0000 lds r24,EE_Parameter+35
294 0292 9927 clr r25
295 0294 2817 cp r18,r24
296 0296 3907 cpc r19,r25
297 0298 04F0 brlt .L38
298 029a 8091 0000 lds r24,EE_Parameter+36
299 029e 9927 clr r25
300 02a0 8217 cp r24,r18
301 02a2 9307 cpc r25,r19
302 02a4 04F4 brge .L33
303 .L38:
304 02a6 9093 0000 sts (ServoValue)+1,r25
305 02aa 8093 0000 sts ServoValue,r24
306 .L33:
307 02ae 8091 0000 lds r24,ServoValue
308 02b2 9091 0000 lds r25,(ServoValue)+1
309 02b6 9093 0000 sts (DebugOut+38)+1,r25
310 02ba 8093 0000 sts DebugOut+38,r24
311 02be 8093 B300 sts 179,r24
312 02c2 8091 0000 lds r24,EE_Parameter+37
313 02c6 8093 0000 sts timer.2045,r24
314 02ca 00C0 rjmp .L36
315 .L26:
316 02cc 83E0 ldi r24,lo8(3)
317 02ce 8093 B000 sts 176,r24
318 02d2 5F98 cbi 43-0x20,7
319 .L36:
320 /* epilogue: frame size=0 */
321 02d4 FF91 pop r31
322 02d6 EF91 pop r30
323 02d8 DF91 pop r29
324 02da CF91 pop r28
325 02dc BF91 pop r27
326 02de AF91 pop r26
327 02e0 9F91 pop r25
328 02e2 8F91 pop r24
329 02e4 7F91 pop r23
330 02e6 6F91 pop r22
331 02e8 5F91 pop r21
332 02ea 4F91 pop r20
333 02ec 3F91 pop r19
334 02ee 2F91 pop r18
335 02f0 1F91 pop r17
336 02f2 0F91 pop r16
337 02f4 FF90 pop r15
338 02f6 EF90 pop r14
339 02f8 0F90 pop __tmp_reg__
340 02fa 0FBE out __SREG__,__tmp_reg__
341 02fc 0F90 pop __tmp_reg__
342 02fe 1F90 pop __zero_reg__
343 0300 1895 reti
344 /* epilogue end (size=23) */
345 /* function __vector_9 size 173 (127) */
347 .global Timer_Init
349 Timer_Init:
350 /* prologue: frame size=0 */
351 /* prologue end (size=0) */
352 0302 8091 0000 lds r24,CountMilliseconds
353 0306 9091 0000 lds r25,(CountMilliseconds)+1
354 030a 0B96 adiw r24,11
355 030c 9093 0000 sts (tim_main)+1,r25
356 0310 8093 0000 sts tim_main,r24
357 0314 82E0 ldi r24,lo8(2)
358 0316 85BD out 69-0x20,r24
359 0318 83EA ldi r24,lo8(-93)
360 031a 84BD out 68-0x20,r24
361 031c 17BC out 71-0x20,__zero_reg__
362 031e 88E7 ldi r24,lo8(120)
363 0320 88BD out 72-0x20,r24
364 0322 96E0 ldi r25,lo8(6)
365 0324 96BD out 70-0x20,r25
366 0326 83EC ldi r24,lo8(-61)
367 0328 8093 B000 sts 176,r24
368 032c 9093 B100 sts 177,r25
369 0330 E0E7 ldi r30,lo8(112)
370 0332 F0E0 ldi r31,hi8(112)
371 0334 8081 ld r24,Z
372 0336 8260 ori r24,lo8(2)
373 0338 8083 st Z,r24
374 033a EEE6 ldi r30,lo8(110)
375 033c F0E0 ldi r31,hi8(110)
376 033e 8081 ld r24,Z
377 0340 8160 ori r24,lo8(1)
378 0342 8083 st Z,r24
379 0344 8AE0 ldi r24,lo8(10)
380 0346 8093 B300 sts 179,r24
381 034a 1092 B200 sts 178,__zero_reg__
382 /* epilogue: frame size=0 */
383 034e 0895 ret
384 /* epilogue end (size=1) */
385 /* function Timer_Init size 39 (38) */
387 .global Delay_ms
389 Delay_ms:
390 /* prologue: frame size=0 */
391 /* prologue end (size=0) */
392 0350 2091 0000 lds r18,CountMilliseconds
393 0354 3091 0000 lds r19,(CountMilliseconds)+1
394 0358 2F5F subi r18,lo8(-(1))
395 035a 3F4F sbci r19,hi8(-(1))
396 035c 280F add r18,r24
397 035e 391F adc r19,r25
398 .L42:
399 0360 8091 0000 lds r24,CountMilliseconds
400 0364 9091 0000 lds r25,(CountMilliseconds)+1
401 0368 A901 movw r20,r18
402 036a 481B sub r20,r24
403 036c 590B sbc r21,r25
404 036e 57FF sbrs r21,7
405 0370 00C0 rjmp .L42
406 /* epilogue: frame size=0 */
407 0372 0895 ret
408 /* epilogue end (size=1) */
409 /* function Delay_ms size 18 (17) */
411 .global CountMilliseconds
412 .global CountMilliseconds
413 .section .bss
416 CountMilliseconds:
417 0000 0000 .skip 2,0
418 .global UpdateMotor
419 .global UpdateMotor
422 UpdateMotor:
423 0002 00 .skip 1,0
424 .global cntKompass
425 .global cntKompass
428 cntKompass:
429 0003 0000 .skip 2,0
430 .global beeptime
431 .global beeptime
434 beeptime:
435 0005 0000 .skip 2,0
436 .global ServoValue
437 .global ServoValue
440 ServoValue:
441 0007 0000 .skip 2,0
442 .data
445 timer.2045:
446 0000 0A .byte 10
447 .lcomm cnt.1951,1
450 cnt_1ms.1950:
451 0001 01 .byte 1
452 .lcomm tim_main,2
453 .comm DiffNick,2,1
454 .comm DiffRoll,2,1
455 .comm SenderOkay,1,1
456 .comm CosinusNickWinkel,1,1
457 .comm CosinusRollWinkel,1,1
458 .comm RemoteTasten,1,1
459 .comm Timeout,1,1
460 .comm IntegralNick,4,1
461 .comm IntegralNick2,4,1
462 .comm IntegralRoll,4,1
463 .comm IntegralRoll2,4,1
464 .comm Mess_IntegralNick,4,1
465 .comm Mess_IntegralNick2,4,1
466 .comm Mess_IntegralRoll,4,1
467 .comm Mess_IntegralRoll2,4,1
468 .comm Integral_Gier,4,1
469 .comm Mess_Integral_Gier,4,1
470 .comm h,1,1
471 .comm m,1,1
472 .comm s,1,1
473 .comm Motor_Vorne,1,1
474 .comm Motor_Hinten,1,1
475 .comm Motor_Rechts,1,1
476 .comm Motor_Links,1,1
477 .comm Count,1,1
478 .comm MotorWert,5,1
479 .comm StickNick,2,1
480 .comm StickRoll,2,1
481 .comm StickGier,2,1
482 .comm MotorenEin,1,1
483 /* File "timer0.c": code 445 = 0x01bd ( 367), prologues 37, epilogues 41 */
DEFINED SYMBOLS
*ABS*:00000000 timer0.c
C:\DOKUME~1\peter\LOKALE~1\Temp/ccpIr8of.s:3 *ABS*:0000003f __SREG__
C:\DOKUME~1\peter\LOKALE~1\Temp/ccpIr8of.s:4 *ABS*:0000003e __SP_H__
C:\DOKUME~1\peter\LOKALE~1\Temp/ccpIr8of.s:5 *ABS*:0000003d __SP_L__
C:\DOKUME~1\peter\LOKALE~1\Temp/ccpIr8of.s:6 *ABS*:00000000 __tmp_reg__
C:\DOKUME~1\peter\LOKALE~1\Temp/ccpIr8of.s:7 *ABS*:00000001 __zero_reg__
C:\DOKUME~1\peter\LOKALE~1\Temp/ccpIr8of.s:13 .text:00000000 __vector_18
.bss:00000009 cnt.1951
C:\DOKUME~1\peter\LOKALE~1\Temp/ccpIr8of.s:450 .data:00000001 cnt_1ms.1950
C:\DOKUME~1\peter\LOKALE~1\Temp/ccpIr8of.s:422 .bss:00000002 UpdateMotor
C:\DOKUME~1\peter\LOKALE~1\Temp/ccpIr8of.s:416 .bss:00000000 CountMilliseconds
*COM*:00000001 Timeout
C:\DOKUME~1\peter\LOKALE~1\Temp/ccpIr8of.s:434 .bss:00000005 beeptime
C:\DOKUME~1\peter\LOKALE~1\Temp/ccpIr8of.s:428 .bss:00000003 cntKompass
C:\DOKUME~1\peter\LOKALE~1\Temp/ccpIr8of.s:164 .text:0000017e SetDelay
C:\DOKUME~1\peter\LOKALE~1\Temp/ccpIr8of.s:180 .text:00000190 CheckDelay
C:\DOKUME~1\peter\LOKALE~1\Temp/ccpIr8of.s:199 .text:000001a8 __vector_9
C:\DOKUME~1\peter\LOKALE~1\Temp/ccpIr8of.s:445 .data:00000000 timer.2045
C:\DOKUME~1\peter\LOKALE~1\Temp/ccpIr8of.s:440 .bss:00000007 ServoValue
*COM*:00000004 IntegralNick
C:\DOKUME~1\peter\LOKALE~1\Temp/ccpIr8of.s:349 .text:00000302 Timer_Init
C:\DOKUME~1\peter\LOKALE~1\Temp/ccpIr8of.s:447 .bss:0000000a tim_main
C:\DOKUME~1\peter\LOKALE~1\Temp/ccpIr8of.s:389 .text:00000350 Delay_ms
*COM*:00000002 DiffNick
*COM*:00000002 DiffRoll
*COM*:00000001 SenderOkay
*COM*:00000001 CosinusNickWinkel
*COM*:00000001 CosinusRollWinkel
*COM*:00000001 RemoteTasten
*COM*:00000004 IntegralNick2
*COM*:00000004 IntegralRoll
*COM*:00000004 IntegralRoll2
*COM*:00000004 Mess_IntegralNick
*COM*:00000004 Mess_IntegralNick2
*COM*:00000004 Mess_IntegralRoll
*COM*:00000004 Mess_IntegralRoll2
*COM*:00000004 Integral_Gier
*COM*:00000004 Mess_Integral_Gier
*COM*:00000001 h
*COM*:00000001 m
*COM*:00000001 s
*COM*:00000001 Motor_Vorne
*COM*:00000001 Motor_Hinten
*COM*:00000001 Motor_Rechts
*COM*:00000001 Motor_Links
*COM*:00000001 Count
*COM*:00000005 MotorWert
*COM*:00000002 StickNick
*COM*:00000002 StickRoll
*COM*:00000002 StickGier
*COM*:00000001 MotorenEin
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
EE_Parameter
KompassValue
KompassStartwert
__divmodhi4
KompassRichtung
Parameter_ServoNickControl
__divmodsi4
__mulsi3
DebugOut