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.2011 31 0020 8150 subi r24,lo8(-(-1)) 32 0022 8093 0000 sts cnt.2011,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.2011,r24 37 0030 8091 0000 lds r24,cnt_1ms.2010 38 0034 8F5F subi r24,lo8(-(1)) 39 0036 8170 andi r24,lo8(1) 40 0038 8093 0000 sts cnt_1ms.2010,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 9927 clr r25 74 0094 83FD sbrc r24,3 75 0096 00C0 rjmp .L10 76 0098 85FF sbrs r24,5 77 009a 00C0 rjmp .L18 78 .L10: 79 009c 349B sbis 38-0x20,4 80 009e 00C0 rjmp .L13 81 00a0 8091 0000 lds r24,cntKompass 82 00a4 9091 0000 lds r25,(cntKompass)+1 83 00a8 0196 adiw r24,1 84 00aa 9093 0000 sts (cntKompass)+1,r25 85 00ae 8093 0000 sts cntKompass,r24 86 00b2 00C0 rjmp .L18 87 .L13: 88 00b4 8091 0000 lds r24,cntKompass 89 00b8 9091 0000 lds r25,(cntKompass)+1 90 00bc 892B or r24,r25 91 00be 01F0 breq .L15 92 00c0 8091 0000 lds r24,cntKompass 93 00c4 9091 0000 lds r25,(cntKompass)+1 94 00c8 805A subi r24,lo8(4000) 95 00ca 9F40 sbci r25,hi8(4000) 96 00cc 00F4 brsh .L15 97 00ce 8091 0000 lds r24,cntKompass 98 00d2 9091 0000 lds r25,(cntKompass)+1 99 00d6 9093 0000 sts (KompassValue)+1,r25 100 00da 8093 0000 sts KompassValue,r24 101 .L15: 102 00de 8091 0000 lds r24,KompassValue 103 00e2 9091 0000 lds r25,(KompassValue)+1 104 00e6 2091 0000 lds r18,KompassStartwert 105 00ea 3091 0000 lds r19,(KompassStartwert)+1 106 00ee 821B sub r24,r18 107 00f0 930B sbc r25,r19 108 00f2 845E subi r24,lo8(-(540)) 109 00f4 9D4F sbci r25,hi8(-(540)) 110 00f6 68E6 ldi r22,lo8(360) 111 00f8 71E0 ldi r23,hi8(360) 112 00fa 0E94 0000 call __divmodhi4 113 00fe 845B subi r24,lo8(-(-180)) 114 0100 9040 sbci r25,hi8(-(-180)) 115 0102 9093 0000 sts (KompassRichtung)+1,r25 116 0106 8093 0000 sts KompassRichtung,r24 117 010a 1092 0000 sts (cntKompass)+1,__zero_reg__ 118 010e 1092 0000 sts cntKompass,__zero_reg__ 119 .L18: 120 /* epilogue: frame size=0 */ 121 0112 BF91 pop r27 122 0114 AF91 pop r26 123 0116 9F91 pop r25 124 0118 8F91 pop r24 125 011a 7F91 pop r23 126 011c 6F91 pop r22 127 011e 5F91 pop r21 128 0120 3F91 pop r19 129 0122 2F91 pop r18 130 0124 0F90 pop __tmp_reg__ 131 0126 0FBE out __SREG__,__tmp_reg__ 132 0128 0F90 pop __tmp_reg__ 133 012a 1F90 pop __zero_reg__ 134 012c 1895 reti 135 /* epilogue end (size=14) */ 136 /* function __vector_18 size 153 (125) */ 138 .global SetDelay 140 SetDelay: 141 /* prologue: frame size=0 */ 142 /* prologue end (size=0) */ 143 012e 2091 0000 lds r18,CountMilliseconds 144 0132 3091 0000 lds r19,(CountMilliseconds)+1 145 0136 2F5F subi r18,lo8(-(1)) 146 0138 3F4F sbci r19,hi8(-(1)) 147 013a 820F add r24,r18 148 013c 931F adc r25,r19 149 /* epilogue: frame size=0 */ 150 013e 0895 ret 151 /* epilogue end (size=1) */ 152 /* function SetDelay size 9 (8) */ 154 .global CheckDelay 156 CheckDelay: 157 /* prologue: frame size=0 */ 158 /* prologue end (size=0) */ 159 0140 2091 0000 lds r18,CountMilliseconds 160 0144 3091 0000 lds r19,(CountMilliseconds)+1 161 0148 821B sub r24,r18 162 014a 930B sbc r25,r19 163 014c 892F mov r24,r25 164 014e 9927 clr r25 165 0150 8695 lsr r24 166 0152 8074 andi r24,lo8(64) 167 0154 9927 clr r25 168 /* epilogue: frame size=0 */ 169 0156 0895 ret 170 /* epilogue end (size=1) */ 171 /* function CheckDelay size 12 (11) */ 173 .global __vector_9 175 __vector_9: 176 /* prologue: frame size=0 */ 177 0158 1F92 push __zero_reg__ 178 015a 0F92 push __tmp_reg__ 179 015c 0FB6 in __tmp_reg__,__SREG__ 180 015e 0F92 push __tmp_reg__ 181 0160 1124 clr __zero_reg__ 182 0162 EF92 push r14 183 0164 FF92 push r15 184 0166 0F93 push r16 185 0168 1F93 push r17 186 016a 2F93 push r18 187 016c 3F93 push r19 188 016e 4F93 push r20 189 0170 5F93 push r21 190 0172 6F93 push r22 191 0174 7F93 push r23 192 0176 8F93 push r24 193 0178 9F93 push r25 194 017a AF93 push r26 195 017c BF93 push r27 196 017e CF93 push r28 197 0180 DF93 push r29 198 0182 EF93 push r30 199 0184 FF93 push r31 200 /* prologue end (size=23) */ 201 0186 8091 0000 lds r24,timer.2100 202 018a 8150 subi r24,lo8(-(-1)) 203 018c 8093 0000 sts timer.2100,r24 204 0190 8F3F cpi r24,lo8(-1) 205 0192 01F0 breq .+2 206 0194 00C0 rjmp .L24 207 0196 83E8 ldi r24,lo8(-125) 208 0198 8093 B000 sts 176,r24 209 019c 8091 0000 lds r24,Parameter_ServoNickControl 210 01a0 C82F mov r28,r24 211 01a2 DD27 clr r29 212 01a4 D093 0000 sts (ServoValue)+1,r29 213 01a8 C093 0000 sts ServoValue,r28 214 01ac 8091 0000 lds r24,EE_Parameter+38 215 01b0 E090 0000 lds r14,EE_Parameter+34 216 01b4 80FF sbrs r24,0 217 01b6 00C0 rjmp .L26 218 01b8 6091 0000 lds r22,IntegralNick 219 01bc 7091 0000 lds r23,(IntegralNick)+1 220 01c0 8091 0000 lds r24,(IntegralNick)+2 221 01c4 9091 0000 lds r25,(IntegralNick)+3 222 01c8 FF24 clr r15 223 01ca 0027 clr r16 224 01cc 1127 clr r17 225 01ce 20E8 ldi r18,lo8(128) 226 01d0 30E0 ldi r19,hi8(128) 227 01d2 40E0 ldi r20,hlo8(128) 228 01d4 50E0 ldi r21,hhi8(128) 229 01d6 0E94 0000 call __divmodsi4 230 01da C801 movw r24,r16 231 01dc B701 movw r22,r14 232 01de 0E94 0000 call __mulsi3 233 01e2 20E0 ldi r18,lo8(512) 234 01e4 32E0 ldi r19,hi8(512) 235 01e6 40E0 ldi r20,hlo8(512) 236 01e8 50E0 ldi r21,hhi8(512) 237 01ea 0E94 0000 call __divmodsi4 238 01ee C20F add r28,r18 239 01f0 D31F adc r29,r19 240 01f2 00C0 rjmp .L35 241 .L26: 242 01f4 6091 0000 lds r22,IntegralNick 243 01f8 7091 0000 lds r23,(IntegralNick)+1 244 01fc 8091 0000 lds r24,(IntegralNick)+2 245 0200 9091 0000 lds r25,(IntegralNick)+3 246 0204 FF24 clr r15 247 0206 0027 clr r16 248 0208 1127 clr r17 249 020a 20E8 ldi r18,lo8(128) 250 020c 30E0 ldi r19,hi8(128) 251 020e 40E0 ldi r20,hlo8(128) 252 0210 50E0 ldi r21,hhi8(128) 253 0212 0E94 0000 call __divmodsi4 254 0216 C801 movw r24,r16 255 0218 B701 movw r22,r14 256 021a 0E94 0000 call __mulsi3 257 021e 20E0 ldi r18,lo8(512) 258 0220 32E0 ldi r19,hi8(512) 259 0222 40E0 ldi r20,hlo8(512) 260 0224 50E0 ldi r21,hhi8(512) 261 0226 0E94 0000 call __divmodsi4 262 022a C21B sub r28,r18 263 022c D30B sbc r29,r19 264 .L35: 265 022e D093 0000 sts (ServoValue)+1,r29 266 0232 C093 0000 sts ServoValue,r28 267 0236 2091 0000 lds r18,ServoValue 268 023a 3091 0000 lds r19,(ServoValue)+1 269 023e 8091 0000 lds r24,EE_Parameter+35 270 0242 9927 clr r25 271 0244 2817 cp r18,r24 272 0246 3907 cpc r19,r25 273 0248 04F0 brlt .L36 274 024a 8091 0000 lds r24,EE_Parameter+36 275 024e 9927 clr r25 276 0250 8217 cp r24,r18 277 0252 9307 cpc r25,r19 278 0254 04F4 brge .L31 279 .L36: 280 0256 9093 0000 sts (ServoValue)+1,r25 281 025a 8093 0000 sts ServoValue,r24 282 .L31: 283 025e 8091 0000 lds r24,ServoValue 284 0262 8093 B300 sts 179,r24 285 0266 8091 0000 lds r24,EE_Parameter+37 286 026a 8093 0000 sts timer.2100,r24 287 026e 00C0 rjmp .L34 288 .L24: 289 0270 83E0 ldi r24,lo8(3) 290 0272 8093 B000 sts 176,r24 291 0276 5F98 cbi 43-0x20,7 292 .L34: 293 /* epilogue: frame size=0 */ 294 0278 FF91 pop r31 295 027a EF91 pop r30 296 027c DF91 pop r29 297 027e CF91 pop r28 298 0280 BF91 pop r27 299 0282 AF91 pop r26 300 0284 9F91 pop r25 301 0286 8F91 pop r24 302 0288 7F91 pop r23 303 028a 6F91 pop r22 304 028c 5F91 pop r21 305 028e 4F91 pop r20 306 0290 3F91 pop r19 307 0292 2F91 pop r18 308 0294 1F91 pop r17 309 0296 0F91 pop r16 310 0298 FF90 pop r15 311 029a EF90 pop r14 312 029c 0F90 pop __tmp_reg__ 313 029e 0FBE out __SREG__,__tmp_reg__ 314 02a0 0F90 pop __tmp_reg__ 315 02a2 1F90 pop __zero_reg__ 316 02a4 1895 reti 317 /* epilogue end (size=23) */ 318 /* function __vector_9 size 167 (121) */ 320 .global Timer_Init 322 Timer_Init: 323 /* prologue: frame size=0 */ 324 /* prologue end (size=0) */ 325 02a6 8091 0000 lds r24,CountMilliseconds 326 02aa 9091 0000 lds r25,(CountMilliseconds)+1 327 02ae 0B96 adiw r24,11 328 02b0 9093 0000 sts (tim_main)+1,r25 329 02b4 8093 0000 sts tim_main,r24 330 02b8 82E0 ldi r24,lo8(2) 331 02ba 85BD out 69-0x20,r24 332 02bc 83EA ldi r24,lo8(-93) 333 02be 84BD out 68-0x20,r24 334 02c0 17BC out 71-0x20,__zero_reg__ 335 02c2 88E7 ldi r24,lo8(120) 336 02c4 88BD out 72-0x20,r24 337 02c6 96E0 ldi r25,lo8(6) 338 02c8 96BD out 70-0x20,r25 339 02ca 83EC ldi r24,lo8(-61) 340 02cc 8093 B000 sts 176,r24 341 02d0 9093 B100 sts 177,r25 342 02d4 E0E7 ldi r30,lo8(112) 343 02d6 F0E0 ldi r31,hi8(112) 344 02d8 8081 ld r24,Z 345 02da 8260 ori r24,lo8(2) 346 02dc 8083 st Z,r24 347 02de EEE6 ldi r30,lo8(110) 348 02e0 F0E0 ldi r31,hi8(110) 349 02e2 8081 ld r24,Z 350 02e4 8160 ori r24,lo8(1) 351 02e6 8083 st Z,r24 352 02e8 8AE0 ldi r24,lo8(10) 353 02ea 8093 B300 sts 179,r24 354 02ee 1092 B200 sts 178,__zero_reg__ 355 /* epilogue: frame size=0 */ 356 02f2 0895 ret 357 /* epilogue end (size=1) */ 358 /* function Timer_Init size 39 (38) */ 360 .global Delay_ms 362 Delay_ms: 363 /* prologue: frame size=0 */ 364 /* prologue end (size=0) */ 365 02f4 2091 0000 lds r18,CountMilliseconds 366 02f8 3091 0000 lds r19,(CountMilliseconds)+1 367 02fc 2F5F subi r18,lo8(-(1)) 368 02fe 3F4F sbci r19,hi8(-(1)) 369 0300 280F add r18,r24 370 0302 391F adc r19,r25 371 .L40: 372 0304 8091 0000 lds r24,CountMilliseconds 373 0308 9091 0000 lds r25,(CountMilliseconds)+1 374 030c A901 movw r20,r18 375 030e 481B sub r20,r24 376 0310 590B sbc r21,r25 377 0312 57FF sbrs r21,7 378 0314 00C0 rjmp .L40 379 /* epilogue: frame size=0 */ 380 0316 0895 ret 381 /* epilogue end (size=1) */ 382 /* function Delay_ms size 18 (17) */ 384 .global CountMilliseconds 385 .global CountMilliseconds 386 .section .bss 389 CountMilliseconds: 390 0000 0000 .skip 2,0 391 .global UpdateMotor 392 .global UpdateMotor 395 UpdateMotor: 396 0002 00 .skip 1,0 397 .global cntKompass 398 .global cntKompass 401 cntKompass: 402 0003 0000 .skip 2,0 403 .global beeptime 404 .global beeptime 407 beeptime: 408 0005 0000 .skip 2,0 409 .global ServoValue 410 .global ServoValue 413 ServoValue: 414 0007 0000 .skip 2,0 415 .data 418 timer.2100: 419 0000 0A .byte 10 420 .lcomm cnt.2011,1 423 cnt_1ms.2010: 424 0001 01 .byte 1 425 .lcomm tim_main,2 426 .comm DiffNick,2,1 427 .comm DiffRoll,2,1 428 .comm SenderOkay,1,1 429 .comm CosinusNickWinkel,1,1 430 .comm CosinusRollWinkel,1,1 431 .comm durchschnitt_northing,4,1 432 .comm durchschnitt_easting,4,1 433 .comm P_GPS_Verstaerkung,2,1 434 .comm D_GPS_Verstaerkung,2,1 435 .comm RemoteTasten,1,1 436 .comm Timeout,1,1 437 .comm IntegralNick,4,1 438 .comm IntegralNick2,4,1 439 .comm IntegralRoll,4,1 440 .comm IntegralRoll2,4,1 441 .comm Mess_IntegralNick,4,1 442 .comm Mess_IntegralNick2,4,1 443 .comm Mess_IntegralRoll,4,1 444 .comm Mess_IntegralRoll2,4,1 445 .comm Integral_Gier,4,1 446 .comm Mess_Integral_Gier,4,1 447 .comm h,1,1 448 .comm m,1,1 449 .comm s,1,1 450 .comm Motor_Vorne,1,1 451 .comm Motor_Hinten,1,1 452 .comm Motor_Rechts,1,1 453 .comm Motor_Links,1,1 454 .comm Count,1,1 455 .comm MotorWert,5,1 456 /* File "timer0.c": code 398 = 0x018e ( 320), prologues 37, epilogues 41 */ DEFINED SYMBOLS *ABS*:00000000 timer0.c C:\DOKUME~1\none\LOKALE~1\Temp/cc6rkWhC.s:3 *ABS*:0000003f __SREG__ C:\DOKUME~1\none\LOKALE~1\Temp/cc6rkWhC.s:4 *ABS*:0000003e __SP_H__ C:\DOKUME~1\none\LOKALE~1\Temp/cc6rkWhC.s:5 *ABS*:0000003d __SP_L__ C:\DOKUME~1\none\LOKALE~1\Temp/cc6rkWhC.s:6 *ABS*:00000000 __tmp_reg__ C:\DOKUME~1\none\LOKALE~1\Temp/cc6rkWhC.s:7 *ABS*:00000001 __zero_reg__ C:\DOKUME~1\none\LOKALE~1\Temp/cc6rkWhC.s:13 .text:00000000 __vector_18 .bss:00000009 cnt.2011 C:\DOKUME~1\none\LOKALE~1\Temp/cc6rkWhC.s:423 .data:00000001 cnt_1ms.2010 C:\DOKUME~1\none\LOKALE~1\Temp/cc6rkWhC.s:395 .bss:00000002 UpdateMotor C:\DOKUME~1\none\LOKALE~1\Temp/cc6rkWhC.s:389 .bss:00000000 CountMilliseconds *COM*:00000001 Timeout C:\DOKUME~1\none\LOKALE~1\Temp/cc6rkWhC.s:407 .bss:00000005 beeptime C:\DOKUME~1\none\LOKALE~1\Temp/cc6rkWhC.s:401 .bss:00000003 cntKompass C:\DOKUME~1\none\LOKALE~1\Temp/cc6rkWhC.s:140 .text:0000012e SetDelay C:\DOKUME~1\none\LOKALE~1\Temp/cc6rkWhC.s:156 .text:00000140 CheckDelay C:\DOKUME~1\none\LOKALE~1\Temp/cc6rkWhC.s:175 .text:00000158 __vector_9 C:\DOKUME~1\none\LOKALE~1\Temp/cc6rkWhC.s:418 .data:00000000 timer.2100 C:\DOKUME~1\none\LOKALE~1\Temp/cc6rkWhC.s:413 .bss:00000007 ServoValue *COM*:00000004 IntegralNick C:\DOKUME~1\none\LOKALE~1\Temp/cc6rkWhC.s:322 .text:000002a6 Timer_Init C:\DOKUME~1\none\LOKALE~1\Temp/cc6rkWhC.s:420 .bss:0000000a tim_main C:\DOKUME~1\none\LOKALE~1\Temp/cc6rkWhC.s:362 .text:000002f4 Delay_ms *COM*:00000002 DiffNick *COM*:00000002 DiffRoll *COM*:00000001 SenderOkay *COM*:00000001 CosinusNickWinkel *COM*:00000001 CosinusRollWinkel *COM*:00000004 durchschnitt_northing *COM*:00000004 durchschnitt_easting *COM*:00000002 P_GPS_Verstaerkung *COM*:00000002 D_GPS_Verstaerkung *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 UNDEFINED SYMBOLS __do_copy_data __do_clear_bss EE_Parameter KompassValue KompassStartwert __divmodhi4 KompassRichtung Parameter_ServoNickControl __divmodsi4 __mulsi3