1 .file "timer0.c" 2 .arch atmega644p 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.2042 31 0020 8150 subi r24,lo8(-(-1)) 32 0022 8093 0000 sts cnt.2042,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.2042,r24 37 0030 8091 0000 lds r24,cnt_1ms.2041 38 0034 8F5F subi r24,lo8(-(1)) 39 0036 8170 andi r24,lo8(1) 40 0038 8093 0000 sts cnt_1ms.2041,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 .L2: 52 0058 8091 0000 lds r24,beeptime 53 005c 9091 0000 lds r25,(beeptime)+1 54 0060 0297 sbiw r24,2 55 0062 00F0 brlo .L6 56 0064 8091 0000 lds r24,beeptime 57 0068 9091 0000 lds r25,(beeptime)+1 58 006c 0197 sbiw r24,1 59 006e 9093 0000 sts (beeptime)+1,r25 60 0072 8093 0000 sts beeptime,r24 61 0076 8091 0000 lds r24,beeptime 62 007a 9091 0000 lds r25,(beeptime)+1 63 007e 2091 0000 lds r18,BeepMuster 64 0082 3091 0000 lds r19,(BeepMuster)+1 65 0086 8223 and r24,r18 66 0088 9323 and r25,r19 67 008a 892B or r24,r25 68 008c 01F0 breq .+2 69 008e 00C0 rjmp .L8 70 0090 00C0 rjmp .L9 71 .L6: 72 0092 8FEF ldi r24,lo8(-1) 73 0094 9FEF ldi r25,hi8(-1) 74 0096 9093 0000 sts (BeepMuster)+1,r25 75 009a 8093 0000 sts BeepMuster,r24 76 .L9: 77 009e 8091 0000 lds r24,PlatinenVersion 78 00a2 8A30 cpi r24,lo8(10) 79 00a4 01F4 brne .L23 80 00a6 00C0 rjmp .L10 81 .L12: 82 00a8 5A9A sbi 43-0x20,2 83 00aa 00C0 rjmp .L13 84 .L24: 85 00ac 479A sbi 40-0x20,7 86 00ae 00C0 rjmp .L13 87 .L10: 88 00b0 5A98 cbi 43-0x20,2 89 00b2 00C0 rjmp .L13 90 .L23: 91 00b4 4798 cbi 40-0x20,7 92 .L13: 93 00b6 8091 0000 lds r24,EE_Parameter+8 94 00ba 83FF sbrs r24,3 95 00bc 00C0 rjmp .L22 96 00be 349B sbis 38-0x20,4 97 00c0 00C0 rjmp .L17 98 00c2 8091 0000 lds r24,cntKompass 99 00c6 9091 0000 lds r25,(cntKompass)+1 100 00ca 0196 adiw r24,1 101 00cc 9093 0000 sts (cntKompass)+1,r25 102 00d0 8093 0000 sts cntKompass,r24 103 00d4 00C0 rjmp .L22 104 .L17: 105 00d6 8091 0000 lds r24,cntKompass 106 00da 9091 0000 lds r25,(cntKompass)+1 107 00de 892B or r24,r25 108 00e0 01F0 breq .L19 109 00e2 8091 0000 lds r24,cntKompass 110 00e6 9091 0000 lds r25,(cntKompass)+1 111 00ea 805A subi r24,lo8(4000) 112 00ec 9F40 sbci r25,hi8(4000) 113 00ee 00F4 brsh .L19 114 00f0 8091 0000 lds r24,cntKompass 115 00f4 9091 0000 lds r25,(cntKompass)+1 116 00f8 9093 0000 sts (KompassValue)+1,r25 117 00fc 8093 0000 sts KompassValue,r24 118 .L19: 119 0100 8091 0000 lds r24,KompassValue 120 0104 9091 0000 lds r25,(KompassValue)+1 121 0108 2091 0000 lds r18,KompassStartwert 122 010c 3091 0000 lds r19,(KompassStartwert)+1 123 0110 821B sub r24,r18 124 0112 930B sbc r25,r19 125 0114 845E subi r24,lo8(-(540)) 126 0116 9D4F sbci r25,hi8(-(540)) 127 0118 68E6 ldi r22,lo8(360) 128 011a 71E0 ldi r23,hi8(360) 129 011c 0E94 0000 call __divmodhi4 130 0120 845B subi r24,lo8(-(-180)) 131 0122 9040 sbci r25,hi8(-(-180)) 132 0124 9093 0000 sts (KompassRichtung)+1,r25 133 0128 8093 0000 sts KompassRichtung,r24 134 012c 1092 0000 sts (cntKompass)+1,__zero_reg__ 135 0130 1092 0000 sts cntKompass,__zero_reg__ 136 0134 00C0 rjmp .L22 137 .L8: 138 0136 8091 0000 lds r24,PlatinenVersion 139 013a 8A30 cpi r24,lo8(10) 140 013c 01F0 breq .+2 141 013e 00C0 rjmp .L24 142 0140 00C0 rjmp .L12 143 .L22: 144 /* epilogue: frame size=0 */ 145 0142 BF91 pop r27 146 0144 AF91 pop r26 147 0146 9F91 pop r25 148 0148 8F91 pop r24 149 014a 7F91 pop r23 150 014c 6F91 pop r22 151 014e 5F91 pop r21 152 0150 3F91 pop r19 153 0152 2F91 pop r18 154 0154 0F90 pop __tmp_reg__ 155 0156 0FBE out __SREG__,__tmp_reg__ 156 0158 0F90 pop __tmp_reg__ 157 015a 1F90 pop __zero_reg__ 158 015c 1895 reti 159 /* epilogue end (size=14) */ 160 /* function __vector_18 size 177 (149) */ 162 .global SetDelay 164 SetDelay: 165 /* prologue: frame size=0 */ 166 /* prologue end (size=0) */ 167 015e 2091 0000 lds r18,CountMilliseconds 168 0162 3091 0000 lds r19,(CountMilliseconds)+1 169 0166 2F5F subi r18,lo8(-(1)) 170 0168 3F4F sbci r19,hi8(-(1)) 171 016a 820F add r24,r18 172 016c 931F adc r25,r19 173 /* epilogue: frame size=0 */ 174 016e 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 0170 2091 0000 lds r18,CountMilliseconds 184 0174 3091 0000 lds r19,(CountMilliseconds)+1 185 0178 821B sub r24,r18 186 017a 930B sbc r25,r19 187 017c 892F mov r24,r25 188 017e 9927 clr r25 189 0180 8695 lsr r24 190 0182 8074 andi r24,lo8(64) 191 0184 9927 clr r25 192 /* epilogue: frame size=0 */ 193 0186 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 0188 1F92 push __zero_reg__ 202 018a 0F92 push __tmp_reg__ 203 018c 0FB6 in __tmp_reg__,__SREG__ 204 018e 0F92 push __tmp_reg__ 205 0190 1124 clr __zero_reg__ 206 0192 EF92 push r14 207 0194 FF92 push r15 208 0196 0F93 push r16 209 0198 1F93 push r17 210 019a 2F93 push r18 211 019c 3F93 push r19 212 019e 4F93 push r20 213 01a0 5F93 push r21 214 01a2 6F93 push r22 215 01a4 7F93 push r23 216 01a6 8F93 push r24 217 01a8 9F93 push r25 218 01aa AF93 push r26 219 01ac BF93 push r27 220 01ae CF93 push r28 221 01b0 DF93 push r29 222 01b2 EF93 push r30 223 01b4 FF93 push r31 224 /* prologue end (size=23) */ 225 01b6 8091 0000 lds r24,timer.2145 226 01ba 8150 subi r24,lo8(-(-1)) 227 01bc 8093 0000 sts timer.2145,r24 228 01c0 8F3F cpi r24,lo8(-1) 229 01c2 01F0 breq .+2 230 01c4 00C0 rjmp .L30 231 01c6 83E8 ldi r24,lo8(-125) 232 01c8 8093 B000 sts 176,r24 233 01cc 8091 0000 lds r24,Parameter_ServoNickControl 234 01d0 C82F mov r28,r24 235 01d2 DD27 clr r29 236 01d4 D093 0000 sts (ServoValue)+1,r29 237 01d8 C093 0000 sts ServoValue,r28 238 01dc 8091 0000 lds r24,EE_Parameter+53 239 01e0 E090 0000 lds r14,EE_Parameter+34 240 01e4 80FF sbrs r24,0 241 01e6 00C0 rjmp .L32 242 01e8 6091 0000 lds r22,IntegralNick 243 01ec 7091 0000 lds r23,(IntegralNick)+1 244 01f0 8091 0000 lds r24,(IntegralNick)+2 245 01f4 9091 0000 lds r25,(IntegralNick)+3 246 01f8 FF24 clr r15 247 01fa 0027 clr r16 248 01fc 1127 clr r17 249 01fe 20E8 ldi r18,lo8(128) 250 0200 30E0 ldi r19,hi8(128) 251 0202 40E0 ldi r20,hlo8(128) 252 0204 50E0 ldi r21,hhi8(128) 253 0206 0E94 0000 call __divmodsi4 254 020a C801 movw r24,r16 255 020c B701 movw r22,r14 256 020e 0E94 0000 call __mulsi3 257 0212 20E0 ldi r18,lo8(512) 258 0214 32E0 ldi r19,hi8(512) 259 0216 40E0 ldi r20,hlo8(512) 260 0218 50E0 ldi r21,hhi8(512) 261 021a 0E94 0000 call __divmodsi4 262 021e C20F add r28,r18 263 0220 D31F adc r29,r19 264 0222 00C0 rjmp .L41 265 .L32: 266 0224 6091 0000 lds r22,IntegralNick 267 0228 7091 0000 lds r23,(IntegralNick)+1 268 022c 8091 0000 lds r24,(IntegralNick)+2 269 0230 9091 0000 lds r25,(IntegralNick)+3 270 0234 FF24 clr r15 271 0236 0027 clr r16 272 0238 1127 clr r17 273 023a 20E8 ldi r18,lo8(128) 274 023c 30E0 ldi r19,hi8(128) 275 023e 40E0 ldi r20,hlo8(128) 276 0240 50E0 ldi r21,hhi8(128) 277 0242 0E94 0000 call __divmodsi4 278 0246 C801 movw r24,r16 279 0248 B701 movw r22,r14 280 024a 0E94 0000 call __mulsi3 281 024e 20E0 ldi r18,lo8(512) 282 0250 32E0 ldi r19,hi8(512) 283 0252 40E0 ldi r20,hlo8(512) 284 0254 50E0 ldi r21,hhi8(512) 285 0256 0E94 0000 call __divmodsi4 286 025a C21B sub r28,r18 287 025c D30B sbc r29,r19 288 .L41: 289 025e D093 0000 sts (ServoValue)+1,r29 290 0262 C093 0000 sts ServoValue,r28 291 0266 2091 0000 lds r18,ServoValue 292 026a 3091 0000 lds r19,(ServoValue)+1 293 026e 8091 0000 lds r24,EE_Parameter+35 294 0272 9927 clr r25 295 0274 2817 cp r18,r24 296 0276 3907 cpc r19,r25 297 0278 04F0 brlt .L42 298 027a 8091 0000 lds r24,EE_Parameter+36 299 027e 9927 clr r25 300 0280 8217 cp r24,r18 301 0282 9307 cpc r25,r19 302 0284 04F4 brge .L37 303 .L42: 304 0286 9093 0000 sts (ServoValue)+1,r25 305 028a 8093 0000 sts ServoValue,r24 306 .L37: 307 028e 8091 0000 lds r24,ServoValue 308 0292 8093 B300 sts 179,r24 309 0296 8091 0000 lds r24,EE_Parameter+37 310 029a 8093 0000 sts timer.2145,r24 311 029e 00C0 rjmp .L40 312 .L30: 313 02a0 83E0 ldi r24,lo8(3) 314 02a2 8093 B000 sts 176,r24 315 02a6 5F98 cbi 43-0x20,7 316 .L40: 317 /* epilogue: frame size=0 */ 318 02a8 FF91 pop r31 319 02aa EF91 pop r30 320 02ac DF91 pop r29 321 02ae CF91 pop r28 322 02b0 BF91 pop r27 323 02b2 AF91 pop r26 324 02b4 9F91 pop r25 325 02b6 8F91 pop r24 326 02b8 7F91 pop r23 327 02ba 6F91 pop r22 328 02bc 5F91 pop r21 329 02be 4F91 pop r20 330 02c0 3F91 pop r19 331 02c2 2F91 pop r18 332 02c4 1F91 pop r17 333 02c6 0F91 pop r16 334 02c8 FF90 pop r15 335 02ca EF90 pop r14 336 02cc 0F90 pop __tmp_reg__ 337 02ce 0FBE out __SREG__,__tmp_reg__ 338 02d0 0F90 pop __tmp_reg__ 339 02d2 1F90 pop __zero_reg__ 340 02d4 1895 reti 341 /* epilogue end (size=23) */ 342 /* function __vector_9 size 167 (121) */ 344 .global Timer_Init 346 Timer_Init: 347 /* prologue: frame size=0 */ 348 /* prologue end (size=0) */ 349 02d6 8091 0000 lds r24,CountMilliseconds 350 02da 9091 0000 lds r25,(CountMilliseconds)+1 351 02de 0B96 adiw r24,11 352 02e0 9093 0000 sts (tim_main)+1,r25 353 02e4 8093 0000 sts tim_main,r24 354 02e8 82E0 ldi r24,lo8(2) 355 02ea 85BD out 69-0x20,r24 356 02ec 83EA ldi r24,lo8(-93) 357 02ee 84BD out 68-0x20,r24 358 02f0 17BC out 71-0x20,__zero_reg__ 359 02f2 88E7 ldi r24,lo8(120) 360 02f4 88BD out 72-0x20,r24 361 02f6 96E0 ldi r25,lo8(6) 362 02f8 96BD out 70-0x20,r25 363 02fa 83EC ldi r24,lo8(-61) 364 02fc 8093 B000 sts 176,r24 365 0300 9093 B100 sts 177,r25 366 0304 E0E7 ldi r30,lo8(112) 367 0306 F0E0 ldi r31,hi8(112) 368 0308 8081 ld r24,Z 369 030a 8260 ori r24,lo8(2) 370 030c 8083 st Z,r24 371 030e EEE6 ldi r30,lo8(110) 372 0310 F0E0 ldi r31,hi8(110) 373 0312 8081 ld r24,Z 374 0314 8160 ori r24,lo8(1) 375 0316 8083 st Z,r24 376 0318 8AE0 ldi r24,lo8(10) 377 031a 8093 B300 sts 179,r24 378 031e 1092 B200 sts 178,__zero_reg__ 379 /* epilogue: frame size=0 */ 380 0322 0895 ret 381 /* epilogue end (size=1) */ 382 /* function Timer_Init size 39 (38) */ 384 .global Delay_ms_Mess 386 Delay_ms_Mess: 387 /* prologue: frame size=0 */ 388 /* prologue end (size=0) */ 389 0324 2091 0000 lds r18,CountMilliseconds 390 0328 3091 0000 lds r19,(CountMilliseconds)+1 391 032c 2F5F subi r18,lo8(-(1)) 392 032e 3F4F sbci r19,hi8(-(1)) 393 0330 280F add r18,r24 394 0332 391F adc r19,r25 395 0334 4FEE ldi r20,lo8(-17) 396 0336 00C0 rjmp .L46 397 .L47: 398 0338 4093 7A00 sts 122,r20 399 .L46: 400 033c 8091 0000 lds r24,CountMilliseconds 401 0340 9091 0000 lds r25,(CountMilliseconds)+1 402 0344 B901 movw r22,r18 403 0346 681B sub r22,r24 404 0348 790B sbc r23,r25 405 034a 77FF sbrs r23,7 406 034c 00C0 rjmp .L47 407 /* epilogue: frame size=0 */ 408 034e 0895 ret 409 /* epilogue end (size=1) */ 410 /* function Delay_ms_Mess size 22 (21) */ 412 .global Delay_ms 414 Delay_ms: 415 /* prologue: frame size=0 */ 416 /* prologue end (size=0) */ 417 0350 2091 0000 lds r18,CountMilliseconds 418 0354 3091 0000 lds r19,(CountMilliseconds)+1 419 0358 2F5F subi r18,lo8(-(1)) 420 035a 3F4F sbci r19,hi8(-(1)) 421 035c 280F add r18,r24 422 035e 391F adc r19,r25 423 .L51: 424 0360 8091 0000 lds r24,CountMilliseconds 425 0364 9091 0000 lds r25,(CountMilliseconds)+1 426 0368 A901 movw r20,r18 427 036a 481B sub r20,r24 428 036c 590B sbc r21,r25 429 036e 57FF sbrs r21,7 430 0370 00C0 rjmp .L51 431 /* epilogue: frame size=0 */ 432 0372 0895 ret 433 /* epilogue end (size=1) */ 434 /* function Delay_ms size 18 (17) */ 436 .global CountMilliseconds 437 .global CountMilliseconds 438 .section .bss 441 CountMilliseconds: 442 0000 0000 .skip 2,0 443 .global UpdateMotor 444 .global UpdateMotor 447 UpdateMotor: 448 0002 00 .skip 1,0 449 .global cntKompass 450 .global cntKompass 453 cntKompass: 454 0003 0000 .skip 2,0 455 .global beeptime 456 .global beeptime 459 beeptime: 460 0005 0000 .skip 2,0 461 .global BeepMuster 462 .data 465 BeepMuster: 466 0000 FFFF .word -1 467 .global ServoValue 468 .global ServoValue 469 .section .bss 472 ServoValue: 473 0007 0000 .skip 2,0 474 .data 477 timer.2145: 478 0002 0A .byte 10 479 .lcomm cnt.2042,1 482 cnt_1ms.2041: 483 0003 01 .byte 1 484 .lcomm tim_main,2 485 /* File "timer0.c": code 444 = 0x01bc ( 365), prologues 37, epilogues 42 */ DEFINED SYMBOLS *ABS*:00000000 timer0.c C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:3 *ABS*:0000003f __SREG__ C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:4 *ABS*:0000003e __SP_H__ C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:5 *ABS*:0000003d __SP_L__ C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:6 *ABS*:00000000 __tmp_reg__ C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:7 *ABS*:00000001 __zero_reg__ C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:13 .text:00000000 __vector_18 .bss:00000009 cnt.2042 C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:482 .data:00000003 cnt_1ms.2041 C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:447 .bss:00000002 UpdateMotor C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:441 .bss:00000000 CountMilliseconds C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:459 .bss:00000005 beeptime C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:465 .data:00000000 BeepMuster C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:453 .bss:00000003 cntKompass C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:164 .text:0000015e SetDelay C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:180 .text:00000170 CheckDelay C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:199 .text:00000188 __vector_9 C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:477 .data:00000002 timer.2145 C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:472 .bss:00000007 ServoValue C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:346 .text:000002d6 Timer_Init C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:479 .bss:0000000a tim_main C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:386 .text:00000324 Delay_ms_Mess C:\Users\gunterl\AppData\Local\Temp/cc5S9deL.s:414 .text:00000350 Delay_ms UNDEFINED SYMBOLS __do_copy_data __do_clear_bss PlatinenVersion EE_Parameter KompassValue KompassStartwert __divmodhi4 KompassRichtung Parameter_ServoNickControl IntegralNick __divmodsi4 __mulsi3