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 .global ServoRollValue 11 .global ServoRollValue 12 .section .bss 15 ServoRollValue: 16 0000 0000 .skip 2,0 17 .global ServoNickValue 18 .global ServoNickValue 21 ServoNickValue: 22 0002 0000 .skip 2,0 23 .global BeepMuster 24 .data 27 BeepMuster: 28 0000 FFFF .word -1 29 .global ServoActive 30 .global ServoActive 31 .section .bss 34 ServoActive: 35 0004 00 .skip 1,0 36 .global SendSPI 37 .global SendSPI 40 SendSPI: 41 0005 00 .skip 1,0 42 .global beeptime 43 .global beeptime 46 beeptime: 47 0006 0000 .skip 2,0 48 .global cntKompass 49 .global cntKompass 52 cntKompass: 53 0008 0000 .skip 2,0 54 .global UpdateMotor 55 .global UpdateMotor 58 UpdateMotor: 59 000a 00 .skip 1,0 60 .global CountMilliseconds 61 .global CountMilliseconds 64 CountMilliseconds: 65 000b 0000 .skip 2,0 66 .data 69 CameraShutterCycleOnCount: 70 0002 1400 .word 20 71 .lcomm CameraShutterCycleCounter,2 72 .lcomm CameraShutterCycle,2 75 cnt_1ms.6: 76 0004 01 .byte 1 77 .lcomm cnt.7,1 78 .lcomm compass_active.8,1 79 .text 80 .global __vector_18 82 __vector_18: 83 /* prologue: frame size=0 */ 84 0000 1F92 push __zero_reg__ 85 0002 0F92 push __tmp_reg__ 86 0004 0FB6 in __tmp_reg__,__SREG__ 87 0006 0F92 push __tmp_reg__ 88 0008 1124 clr __zero_reg__ 89 000a 2F93 push r18 90 000c 3F93 push r19 91 000e 5F93 push r21 92 0010 6F93 push r22 93 0012 7F93 push r23 94 0014 8F93 push r24 95 0016 9F93 push r25 96 0018 AF93 push r26 97 001a BF93 push r27 98 001c EF93 push r30 99 001e FF93 push r31 100 /* prologue end (size=16) */ 101 0020 20E0 ldi r18,lo8(0) 102 0022 8091 0000 lds r24,SendSPI 103 0026 8823 tst r24 104 0028 29F0 breq .L2 105 002a 8091 0000 lds r24,SendSPI 106 002e 8150 subi r24,lo8(-(-1)) 107 0030 8093 0000 sts SendSPI,r24 108 .L2: 109 0034 8091 0000 lds r24,SpektrumTimer 110 0038 8823 tst r24 111 003a 19F0 breq .L3 112 003c 8150 subi r24,lo8(-(-1)) 113 003e 8093 0000 sts SpektrumTimer,r24 114 .L3: 115 0042 8091 0000 lds r24,cnt.7 116 0046 8150 subi r24,lo8(-(-1)) 117 0048 8093 0000 sts cnt.7,r24 118 004c 8F3F cpi r24,lo8(-1) 119 004e 09F0 breq .+2 120 0050 57C0 rjmp .L4 121 0052 89E0 ldi r24,lo8(9) 122 0054 8093 0000 sts cnt.7,r24 123 0058 8091 0000 lds r24,CountMilliseconds 124 005c 9091 0000 lds r25,(CountMilliseconds)+1 125 0060 0196 adiw r24,1 126 0062 9093 0000 sts (CountMilliseconds)+1,r25 127 0066 8093 0000 sts CountMilliseconds,r24 128 006a 8091 0000 lds r24,cnt_1ms.6 129 006e 8F5F subi r24,lo8(-(1)) 130 0070 8170 andi r24,lo8(1) 131 0072 8093 0000 sts cnt_1ms.6,r24 132 0076 8823 tst r24 133 0078 19F4 brne .L5 134 007a 81E0 ldi r24,lo8(1) 135 007c 8093 0000 sts UpdateMotor,r24 136 .L5: 137 0080 86B1 in r24,38-0x20 138 0082 8091 0000 lds r24,beeptime 139 0086 9091 0000 lds r25,(beeptime)+1 140 008a 892B or r24,r25 141 008c 21F1 breq .L7 142 008e 8091 0000 lds r24,beeptime 143 0092 9091 0000 lds r25,(beeptime)+1 144 0096 0B97 sbiw r24,11 145 0098 50F0 brlo .L8 146 009a 8091 0000 lds r24,beeptime 147 009e 9091 0000 lds r25,(beeptime)+1 148 00a2 0A97 sbiw r24,10 149 00a4 9093 0000 sts (beeptime)+1,r25 150 00a8 8093 0000 sts beeptime,r24 151 00ac 04C0 rjmp .L9 152 .L8: 153 00ae 1092 0000 sts (beeptime)+1,__zero_reg__ 154 00b2 1092 0000 sts beeptime,__zero_reg__ 155 .L9: 156 00b6 8091 0000 lds r24,beeptime 157 00ba 9091 0000 lds r25,(beeptime)+1 158 00be 2091 0000 lds r18,BeepMuster 159 00c2 3091 0000 lds r19,(BeepMuster)+1 160 00c6 8223 and r24,r18 161 00c8 9323 and r25,r19 162 00ca 892B or r24,r25 163 00cc 11F0 breq .L10 164 00ce 21E0 ldi r18,lo8(1) 165 00d0 08C0 rjmp .L12 166 .L10: 167 00d2 20E0 ldi r18,lo8(0) 168 00d4 06C0 rjmp .L12 169 .L7: 170 00d6 8FEF ldi r24,lo8(-1) 171 00d8 9FEF ldi r25,hi8(-1) 172 00da 9093 0000 sts (BeepMuster)+1,r25 173 00de 8093 0000 sts BeepMuster,r24 174 .L12: 175 00e2 8091 0000 lds r24,PlatinenVersion 176 00e6 2223 tst r18 177 00e8 31F0 breq .L13 178 00ea 8A30 cpi r24,lo8(10) 179 00ec 11F4 brne .L14 180 00ee 5A9A sbi 43-0x20,2 181 00f0 07C0 rjmp .L4 182 .L14: 183 00f2 479A sbi 40-0x20,7 184 00f4 05C0 rjmp .L4 185 .L13: 186 00f6 8A30 cpi r24,lo8(10) 187 00f8 11F4 brne .L17 188 00fa 5A98 cbi 43-0x20,2 189 00fc 01C0 rjmp .L4 190 .L17: 191 00fe 4798 cbi 40-0x20,7 192 .L4: 193 0100 8091 0000 lds r24,compass_active.8 194 0104 8823 tst r24 195 0106 09F4 brne .+2 196 0108 72C0 rjmp .L1 197 010a 2091 0000 lds r18,NaviDataOkay 198 010e 2223 tst r18 199 0110 09F0 breq .+2 200 0112 6DC0 rjmp .L1 201 0114 8091 0000 lds r24,EE_Parameter+13 202 0118 83FF sbrs r24,3 203 011a 69C0 rjmp .L1 204 011c 86B1 in r24,38-0x20 205 011e 9927 clr r25 206 0120 FC01 movw r30,r24 207 0122 E071 andi r30,lo8(16) 208 0124 F070 andi r31,hi8(16) 209 0126 84FF sbrs r24,4 210 0128 14C0 rjmp .L20 211 012a 8091 0000 lds r24,cntKompass 212 012e 9091 0000 lds r25,(cntKompass)+1 213 0132 0196 adiw r24,1 214 0134 9093 0000 sts (cntKompass)+1,r25 215 0138 8093 0000 sts cntKompass,r24 216 013c 8091 0000 lds r24,cntKompass 217 0140 9091 0000 lds r25,(cntKompass)+1 218 0144 895E subi r24,lo8(1001) 219 0146 9340 sbci r25,hi8(1001) 220 0148 08F4 brsh .+2 221 014a 51C0 rjmp .L1 222 014c 2093 0000 sts compass_active.8,r18 223 0150 4EC0 rjmp .L1 224 .L20: 225 0152 8091 0000 lds r24,cntKompass 226 0156 9091 0000 lds r25,(cntKompass)+1 227 015a 892B or r24,r25 228 015c 09F4 brne .+2 229 015e 43C0 rjmp .L23 230 0160 8091 0000 lds r24,cntKompass 231 0164 9091 0000 lds r25,(cntKompass)+1 232 0168 8A56 subi r24,lo8(362) 233 016a 9140 sbci r25,hi8(362) 234 016c E0F5 brsh .L23 235 016e 8091 0000 lds r24,cntKompass 236 0172 9091 0000 lds r25,(cntKompass)+1 237 0176 69E2 ldi r22,lo8(41) 238 0178 70E0 ldi r23,hi8(41) 239 017a 0E94 0000 call __udivmodhi4 240 017e 8091 0000 lds r24,cntKompass 241 0182 9091 0000 lds r25,(cntKompass)+1 242 0186 860F add r24,r22 243 0188 971F adc r25,r23 244 018a 9093 0000 sts (cntKompass)+1,r25 245 018e 8093 0000 sts cntKompass,r24 246 0192 8091 0000 lds r24,cntKompass 247 0196 9091 0000 lds r25,(cntKompass)+1 248 019a 0B97 sbiw r24,11 249 019c 50F0 brlo .L24 250 019e 8091 0000 lds r24,cntKompass 251 01a2 9091 0000 lds r25,(cntKompass)+1 252 01a6 0A97 sbiw r24,10 253 01a8 9093 0000 sts (KompassValue)+1,r25 254 01ac 8093 0000 sts KompassValue,r24 255 01b0 04C0 rjmp .L25 256 .L24: 257 01b2 F093 0000 sts (KompassValue)+1,r31 258 01b6 E093 0000 sts KompassValue,r30 259 .L25: 260 01ba 8091 0000 lds r24,KompassValue 261 01be 9091 0000 lds r25,(KompassValue)+1 262 01c2 2091 0000 lds r18,KompassStartwert 263 01c6 3091 0000 lds r19,(KompassStartwert)+1 264 01ca 821B sub r24,r18 265 01cc 930B sbc r25,r19 266 01ce 845E subi r24,lo8(-(540)) 267 01d0 9D4F sbci r25,hi8(-(540)) 268 01d2 68E6 ldi r22,lo8(360) 269 01d4 71E0 ldi r23,hi8(360) 270 01d6 0E94 0000 call __divmodhi4 271 01da 845B subi r24,lo8(-(-180)) 272 01dc 9040 sbci r25,hi8(-(-180)) 273 01de 9093 0000 sts (KompassRichtung)+1,r25 274 01e2 8093 0000 sts KompassRichtung,r24 275 .L23: 276 01e6 1092 0000 sts (cntKompass)+1,__zero_reg__ 277 01ea 1092 0000 sts cntKompass,__zero_reg__ 278 .L1: 279 /* epilogue: frame size=0 */ 280 01ee FF91 pop r31 281 01f0 EF91 pop r30 282 01f2 BF91 pop r27 283 01f4 AF91 pop r26 284 01f6 9F91 pop r25 285 01f8 8F91 pop r24 286 01fa 7F91 pop r23 287 01fc 6F91 pop r22 288 01fe 5F91 pop r21 289 0200 3F91 pop r19 290 0202 2F91 pop r18 291 0204 0F90 pop __tmp_reg__ 292 0206 0FBE out __SREG__,__tmp_reg__ 293 0208 0F90 pop __tmp_reg__ 294 020a 1F90 pop __zero_reg__ 295 020c 1895 reti 296 /* epilogue end (size=16) */ 297 /* function __vector_18 size 267 (235) */ 299 .global SetDelay 301 SetDelay: 302 /* prologue: frame size=0 */ 303 /* prologue end (size=0) */ 304 020e 2091 0000 lds r18,CountMilliseconds 305 0212 3091 0000 lds r19,(CountMilliseconds)+1 306 0216 280F add r18,r24 307 0218 391F adc r19,r25 308 021a C901 movw r24,r18 309 021c 0196 adiw r24,1 310 /* epilogue: frame size=0 */ 311 021e 0895 ret 312 /* epilogue end (size=1) */ 313 /* function SetDelay size 9 (8) */ 315 .global CheckDelay 317 CheckDelay: 318 /* prologue: frame size=0 */ 319 /* prologue end (size=0) */ 320 0220 2091 0000 lds r18,CountMilliseconds 321 0224 3091 0000 lds r19,(CountMilliseconds)+1 322 0228 821B sub r24,r18 323 022a 930B sbc r25,r19 324 022c 892F mov r24,r25 325 022e 9927 clr r25 326 0230 8695 lsr r24 327 0232 8074 andi r24,lo8(64) 328 0234 9070 andi r25,hi8(64) 329 /* epilogue: frame size=0 */ 330 0236 0895 ret 331 /* epilogue end (size=1) */ 332 /* function CheckDelay size 12 (11) */ 334 .global Delay_ms 336 Delay_ms: 337 /* prologue: frame size=0 */ 338 0238 CF93 push r28 339 023a DF93 push r29 340 /* prologue end (size=2) */ 341 023c 0E94 0000 call SetDelay 342 0240 EC01 movw r28,r24 343 .L29: 344 0242 CE01 movw r24,r28 345 0244 0E94 0000 call CheckDelay 346 0248 8823 tst r24 347 024a D9F3 breq .L29 348 /* epilogue: frame size=0 */ 349 024c DF91 pop r29 350 024e CF91 pop r28 351 0250 0895 ret 352 /* epilogue end (size=3) */ 353 /* function Delay_ms size 13 (8) */ 355 .global Delay_ms_Mess 357 Delay_ms_Mess: 358 /* prologue: frame size=0 */ 359 0252 CF93 push r28 360 0254 DF93 push r29 361 /* prologue end (size=2) */ 362 0256 0E94 0000 call SetDelay 363 025a EC01 movw r28,r24 364 025c 09C0 rjmp .L40 365 .L36: 366 025e 8091 0000 lds r24,AdReady 367 0262 8823 tst r24 368 0264 29F0 breq .L40 369 0266 9093 0000 sts AdReady,r25 370 026a 8FEC ldi r24,lo8(-49) 371 026c 8093 7A00 sts 122,r24 372 .L40: 373 0270 CE01 movw r24,r28 374 0272 0E94 0000 call CheckDelay 375 0276 982F mov r25,r24 376 0278 8823 tst r24 377 027a 89F3 breq .L36 378 /* epilogue: frame size=0 */ 379 027c DF91 pop r29 380 027e CF91 pop r28 381 0280 0895 ret 382 /* epilogue end (size=3) */ 383 /* function Delay_ms_Mess size 24 (19) */ 385 .global TIMER2_Init 387 TIMER2_Init: 388 /* prologue: frame size=0 */ 389 /* prologue end (size=0) */ 390 0282 4FB7 in r20,95-0x20 391 0284 8091 0000 lds r24,Parameter_UserParam8 392 0288 282F mov r18,r24 393 028a 3327 clr r19 394 028c 2F77 andi r18,lo8(127) 395 028e 3070 andi r19,hi8(127) 396 0290 C901 movw r24,r18 397 0292 880F lsl r24 398 0294 991F rol r25 399 0296 880F lsl r24 400 0298 991F rol r25 401 029a 820F add r24,r18 402 029c 931F adc r25,r19 403 029e 9093 0000 sts (CameraShutterCycle)+1,r25 404 02a2 8093 0000 sts CameraShutterCycle,r24 405 /* #APP */ 406 02a6 F894 cli 407 /* #NOAPP */ 408 02a8 5F98 cbi 43-0x20,7 409 02aa 3E9A sbi 39-0x20,6 410 02ac 469A sbi 40-0x20,6 411 02ae 8091 B000 lds r24,176 412 02b2 8F70 andi r24,lo8(15) 413 02b4 8093 B000 sts 176,r24 414 02b8 8091 B000 lds r24,176 415 02bc 8360 ori r24,lo8(3) 416 02be 8093 B000 sts 176,r24 417 02c2 8091 B100 lds r24,177 418 02c6 8B73 andi r24,lo8(59) 419 02c8 8093 B100 sts 177,r24 420 02cc 8091 B100 lds r24,177 421 02d0 8B60 ori r24,lo8(11) 422 02d2 8093 B100 sts 177,r24 423 02d6 1092 B200 sts 178,__zero_reg__ 424 02da 8FEF ldi r24,lo8(-1) 425 02dc 8093 B300 sts 179,r24 426 02e0 8091 B000 lds r24,176 427 02e4 8068 ori r24,lo8(-128) 428 02e6 8093 B000 sts 176,r24 429 02ea 8091 7000 lds r24,112 430 02ee 8A7F andi r24,lo8(-6) 431 02f0 8093 7000 sts 112,r24 432 02f4 8091 7000 lds r24,112 433 02f8 8260 ori r24,lo8(2) 434 02fa 8093 7000 sts 112,r24 435 02fe 4FBF out 95-0x20,r20 436 /* epilogue: frame size=0 */ 437 0300 0895 ret 438 /* epilogue end (size=1) */ 439 /* function TIMER2_Init size 65 (64) */ 441 .global Timer_Init 443 Timer_Init: 444 /* prologue: frame size=0 */ 445 /* prologue end (size=0) */ 446 0302 8AE0 ldi r24,lo8(10) 447 0304 90E0 ldi r25,hi8(10) 448 0306 0E94 0000 call SetDelay 449 030a 9093 0000 sts (tim_main)+1,r25 450 030e 8093 0000 sts tim_main,r24 451 0312 82E0 ldi r24,lo8(2) 452 0314 85BD out 69-0x20,r24 453 0316 83EA ldi r24,lo8(-93) 454 0318 84BD out 68-0x20,r24 455 031a 17BC out 71-0x20,__zero_reg__ 456 031c 84EB ldi r24,lo8(-76) 457 031e 88BD out 72-0x20,r24 458 0320 86E0 ldi r24,lo8(6) 459 0322 86BD out 70-0x20,r24 460 0324 8091 6E00 lds r24,110 461 0328 8160 ori r24,lo8(1) 462 032a 8093 6E00 sts 110,r24 463 /* epilogue: frame size=0 */ 464 032e 0895 ret 465 /* epilogue end (size=1) */ 466 /* function Timer_Init size 23 (22) */ 468 .lcomm PulseOutput.0,1 469 .lcomm RemainingPulse.1,2 470 .lcomm ServoFrameTime.2,2 471 .lcomm ServoIndex.3,1 472 .data 475 ServoNickOffset.4: 476 0005 FC01 .word 508 479 ServoRollOffset.5: 480 0007 FC01 .word 508 481 .text 482 .global __vector_9 484 __vector_9: 485 /* prologue: frame size=0 */ 486 0330 1F92 push __zero_reg__ 487 0332 0F92 push __tmp_reg__ 488 0334 0FB6 in __tmp_reg__,__SREG__ 489 0336 0F92 push __tmp_reg__ 490 0338 1124 clr __zero_reg__ 491 033a 2F93 push r18 492 033c 3F93 push r19 493 033e 4F93 push r20 494 0340 5F93 push r21 495 0342 6F93 push r22 496 0344 7F93 push r23 497 0346 8F93 push r24 498 0348 9F93 push r25 499 034a AF93 push r26 500 034c BF93 push r27 501 034e CF93 push r28 502 0350 DF93 push r29 503 0352 EF93 push r30 504 0354 FF93 push r31 505 /* prologue end (size=19) */ 506 0356 8091 0000 lds r24,PlatinenVersion 507 035a 8431 cpi r24,lo8(20) 508 035c 08F0 brlo .+2 509 035e 17C1 rjmp .L44 510 0360 8091 0000 lds r24,Parameter_UserParam8 511 0364 87FD sbrc r24,7 512 0366 13C1 rjmp .L44 513 0368 8091 0000 lds r24,PulseOutput.0 514 036c 8823 tst r24 515 036e 09F0 breq .+2 516 0370 AEC3 rjmp .L62 517 0372 8091 B000 lds r24,176 518 0376 86FF sbrs r24,6 519 0378 ECC0 rjmp .L46 520 037a 8091 B000 lds r24,176 521 037e 8F7B andi r24,lo8(-65) 522 0380 8093 B000 sts 176,r24 523 0384 89EA ldi r24,lo8(937) 524 0386 93E0 ldi r25,hi8(937) 525 0388 9093 0000 sts (RemainingPulse.1)+1,r25 526 038c 8093 0000 sts RemainingPulse.1,r24 527 0390 8091 0000 lds r24,ServoNickOffset.4 528 0394 9091 0000 lds r25,(ServoNickOffset.4)+1 529 0398 9C01 movw r18,r24 530 039a 220F lsl r18 531 039c 331F rol r19 532 039e 280F add r18,r24 533 03a0 391F adc r19,r25 534 03a2 8091 0000 lds r24,Parameter_ServoNickControl 535 03a6 9927 clr r25 536 03a8 880F lsl r24 537 03aa 991F rol r25 538 03ac 880F lsl r24 539 03ae 991F rol r25 540 03b0 280F add r18,r24 541 03b2 391F adc r19,r25 542 03b4 37FF sbrs r19,7 543 03b6 02C0 rjmp .L47 544 03b8 2D5F subi r18,lo8(-(3)) 545 03ba 3F4F sbci r19,hi8(-(3)) 546 .L47: 547 03bc C901 movw r24,r18 548 03be 9595 asr r25 549 03c0 8795 ror r24 550 03c2 9595 asr r25 551 03c4 8795 ror r24 552 03c6 9093 0000 sts (ServoNickOffset.4)+1,r25 553 03ca 8093 0000 sts ServoNickOffset.4,r24 554 03ce 9093 0000 sts (ServoNickValue)+1,r25 555 03d2 8093 0000 sts ServoNickValue,r24 556 03d6 8091 0000 lds r24,EE_Parameter+98 557 03da 6091 0000 lds r22,EE_Parameter+46 558 03de 2091 0000 lds r18,IntegralNick 559 03e2 3091 0000 lds r19,(IntegralNick)+1 560 03e6 4091 0000 lds r20,(IntegralNick)+2 561 03ea 5091 0000 lds r21,(IntegralNick)+3 562 03ee 80FF sbrs r24,0 563 03f0 2CC0 rjmp .L48 564 03f2 7727 clr r23 565 03f4 8827 clr r24 566 03f6 9927 clr r25 567 03f8 EA01 movw r28,r20 568 03fa D901 movw r26,r18 569 03fc 57FF sbrs r21,7 570 03fe 04C0 rjmp .L49 571 0400 A158 subi r26,lo8(-(127)) 572 0402 BF4F sbci r27,hi8(-(127)) 573 0404 CF4F sbci r28,hlo8(-(127)) 574 0406 DF4F sbci r29,hhi8(-(127)) 575 .L49: 576 0408 E7E0 ldi r30,7 577 040a D595 1: asr r29 578 040c C795 ror r28 579 040e B795 ror r27 580 0410 A795 ror r26 581 0412 EA95 dec r30 582 0414 D1F7 brne 1b 583 0416 9D01 movw r18,r26 584 0418 AE01 movw r20,r28 585 041a 0E94 0000 call __mulsi3 586 041e 9B01 movw r18,r22 587 0420 AC01 movw r20,r24 588 0422 97FF sbrs r25,7 589 0424 04C0 rjmp .L50 590 0426 215C subi r18,lo8(-(63)) 591 0428 3F4F sbci r19,hi8(-(63)) 592 042a 4F4F sbci r20,hlo8(-(63)) 593 042c 5F4F sbci r21,hhi8(-(63)) 594 .L50: 595 042e 66E0 ldi r22,6 596 0430 5595 1: asr r21 597 0432 4795 ror r20 598 0434 3795 ror r19 599 0436 2795 ror r18 600 0438 6A95 dec r22 601 043a D1F7 brne 1b 602 043c 8091 0000 lds r24,ServoNickValue 603 0440 9091 0000 lds r25,(ServoNickValue)+1 604 0444 820F add r24,r18 605 0446 931F adc r25,r19 606 0448 2BC0 rjmp .L121 607 .L48: 608 044a 7727 clr r23 609 044c 8827 clr r24 610 044e 9927 clr r25 611 0450 EA01 movw r28,r20 612 0452 D901 movw r26,r18 613 0454 57FF sbrs r21,7 614 0456 04C0 rjmp .L52 615 0458 A158 subi r26,lo8(-(127)) 616 045a BF4F sbci r27,hi8(-(127)) 617 045c CF4F sbci r28,hlo8(-(127)) 618 045e DF4F sbci r29,hhi8(-(127)) 619 .L52: 620 0460 27E0 ldi r18,7 621 0462 D595 1: asr r29 622 0464 C795 ror r28 623 0466 B795 ror r27 624 0468 A795 ror r26 625 046a 2A95 dec r18 626 046c D1F7 brne 1b 627 046e 9D01 movw r18,r26 628 0470 AE01 movw r20,r28 629 0472 0E94 0000 call __mulsi3 630 0476 9B01 movw r18,r22 631 0478 AC01 movw r20,r24 632 047a 97FF sbrs r25,7 633 047c 04C0 rjmp .L53 634 047e 215C subi r18,lo8(-(63)) 635 0480 3F4F sbci r19,hi8(-(63)) 636 0482 4F4F sbci r20,hlo8(-(63)) 637 0484 5F4F sbci r21,hhi8(-(63)) 638 .L53: 639 0486 F6E0 ldi r31,6 640 0488 5595 1: asr r21 641 048a 4795 ror r20 642 048c 3795 ror r19 643 048e 2795 ror r18 644 0490 FA95 dec r31 645 0492 D1F7 brne 1b 646 0494 8091 0000 lds r24,ServoNickValue 647 0498 9091 0000 lds r25,(ServoNickValue)+1 648 049c 821B sub r24,r18 649 049e 930B sbc r25,r19 650 .L121: 651 04a0 9093 0000 sts (ServoNickValue)+1,r25 652 04a4 8093 0000 sts ServoNickValue,r24 653 04a8 8091 0000 lds r24,EE_Parameter+47 654 04ac 282F mov r18,r24 655 04ae 3327 clr r19 656 04b0 220F lsl r18 657 04b2 331F rol r19 658 04b4 220F lsl r18 659 04b6 331F rol r19 660 04b8 8091 0000 lds r24,ServoNickValue 661 04bc 9091 0000 lds r25,(ServoNickValue)+1 662 04c0 8217 cp r24,r18 663 04c2 9307 cpc r25,r19 664 04c4 7CF0 brlt .L122 665 04c6 8091 0000 lds r24,EE_Parameter+48 666 04ca 282F mov r18,r24 667 04cc 3327 clr r19 668 04ce 220F lsl r18 669 04d0 331F rol r19 670 04d2 220F lsl r18 671 04d4 331F rol r19 672 04d6 8091 0000 lds r24,ServoNickValue 673 04da 9091 0000 lds r25,(ServoNickValue)+1 674 04de 2817 cp r18,r24 675 04e0 3907 cpc r19,r25 676 04e2 24F4 brge .L55 677 .L122: 678 04e4 3093 0000 sts (ServoNickValue)+1,r19 679 04e8 2093 0000 sts ServoNickValue,r18 680 .L55: 681 04ec 2091 0000 lds r18,RemainingPulse.1 682 04f0 3091 0000 lds r19,(RemainingPulse.1)+1 683 04f4 8091 0000 lds r24,ServoNickValue 684 04f8 9091 0000 lds r25,(ServoNickValue)+1 685 04fc 280F add r18,r24 686 04fe 391F adc r19,r25 687 0500 2050 subi r18,lo8(-(-512)) 688 0502 3240 sbci r19,hi8(-(-512)) 689 0504 3093 0000 sts (RemainingPulse.1)+1,r19 690 0508 2093 0000 sts RemainingPulse.1,r18 691 050c 8091 0000 lds r24,ServoNickValue 692 0510 9091 0000 lds r25,(ServoNickValue)+1 693 0514 97FD sbrc r25,7 694 0516 0396 adiw r24,3 695 .L57: 696 0518 9595 asr r25 697 051a 8795 ror r24 698 051c 9595 asr r25 699 051e 8795 ror r24 700 0520 9093 0000 sts (ServoNickValue)+1,r25 701 0524 8093 0000 sts ServoNickValue,r24 702 0528 45E0 ldi r20,hi8(1501) 703 052a 2D3D cpi r18,lo8(1501) 704 052c 3407 cpc r19,r20 705 052e 18F0 brlo .L58 706 0530 8CED ldi r24,lo8(1500) 707 0532 95E0 ldi r25,hi8(1500) 708 0534 05C0 rjmp .L123 709 .L58: 710 0536 2757 subi r18,lo8(375) 711 0538 3140 sbci r19,hi8(375) 712 053a 30F4 brsh .L59 713 053c 87E7 ldi r24,lo8(375) 714 053e 91E0 ldi r25,hi8(375) 715 .L123: 716 0540 9093 0000 sts (RemainingPulse.1)+1,r25 717 0544 8093 0000 sts RemainingPulse.1,r24 718 .L59: 719 0548 8091 0000 lds r24,RemainingPulse.1 720 054c 9091 0000 lds r25,(RemainingPulse.1)+1 721 0550 87C2 rjmp .L134 722 .L46: 723 0552 8091 B000 lds r24,176 724 0556 8064 ori r24,lo8(64) 725 0558 8093 B000 sts 176,r24 726 055c 8091 0000 lds r24,EE_Parameter+53 727 0560 282F mov r18,r24 728 0562 3327 clr r19 729 0564 8DED ldi r24,lo8(1757) 730 0566 96E0 ldi r25,hi8(1757) 731 0568 289F mul r18,r24 732 056a A001 movw r20,r0 733 056c 299F mul r18,r25 734 056e 500D add r21,r0 735 0570 389F mul r19,r24 736 0572 500D add r21,r0 737 0574 1124 clr r1 738 0576 CA01 movw r24,r20 739 0578 2091 0000 lds r18,ServoFrameTime.2 740 057c 3091 0000 lds r19,(ServoFrameTime.2)+1 741 0580 821B sub r24,r18 742 0582 930B sbc r25,r19 743 0584 9093 0000 sts (RemainingPulse.1)+1,r25 744 0588 8093 0000 sts RemainingPulse.1,r24 745 058c 9DC2 rjmp .L109 746 .L44: 747 058e 8091 0000 lds r24,PulseOutput.0 748 0592 8823 tst r24 749 0594 09F0 breq .+2 750 0596 9BC2 rjmp .L62 751 0598 8091 B000 lds r24,176 752 059c 86FF sbrs r24,6 753 059e 65C2 rjmp .L64 754 05a0 8091 B000 lds r24,176 755 05a4 8F7B andi r24,lo8(-65) 756 05a6 8093 B000 sts 176,r24 757 05aa E091 0000 lds r30,ServoIndex.3 758 05ae EE23 tst r30 759 05b0 F1F4 brne .L65 760 05b2 8091 0000 lds r24,EE_Parameter+53 761 05b6 282F mov r18,r24 762 05b8 3327 clr r19 763 05ba 8DED ldi r24,lo8(1757) 764 05bc 96E0 ldi r25,hi8(1757) 765 05be 289F mul r18,r24 766 05c0 A001 movw r20,r0 767 05c2 299F mul r18,r25 768 05c4 500D add r21,r0 769 05c6 389F mul r19,r24 770 05c8 500D add r21,r0 771 05ca 1124 clr r1 772 05cc CA01 movw r24,r20 773 05ce 2091 0000 lds r18,ServoFrameTime.2 774 05d2 3091 0000 lds r19,(ServoFrameTime.2)+1 775 05d6 821B sub r24,r18 776 05d8 930B sbc r25,r19 777 05da 9093 0000 sts (RemainingPulse.1)+1,r25 778 05de 8093 0000 sts RemainingPulse.1,r24 779 05e2 1092 0000 sts (ServoFrameTime.2)+1,__zero_reg__ 780 05e6 1092 0000 sts ServoFrameTime.2,__zero_reg__ 781 05ea 469A sbi 40-0x20,6 782 05ec 6DC2 rjmp .L109 783 .L65: 784 05ee 49EA ldi r20,lo8(937) 785 05f0 53E0 ldi r21,hi8(937) 786 05f2 5093 0000 sts (RemainingPulse.1)+1,r21 787 05f6 4093 0000 sts RemainingPulse.1,r20 788 05fa 8E2F mov r24,r30 789 05fc 9927 clr r25 790 05fe 8330 cpi r24,3 791 0600 9105 cpc r25,__zero_reg__ 792 0602 09F4 brne .+2 793 0604 A4C1 rjmp .L92 794 0606 8430 cpi r24,4 795 0608 9105 cpc r25,__zero_reg__ 796 060a 3CF4 brge .L105 797 060c 8130 cpi r24,1 798 060e 9105 cpc r25,__zero_reg__ 799 0610 61F0 breq .L68 800 0612 0297 sbiw r24,2 801 0614 09F4 brne .+2 802 0616 D2C0 rjmp .L80 803 0618 ECC1 rjmp .L104 804 .L105: 805 061a 8430 cpi r24,4 806 061c 9105 cpc r25,__zero_reg__ 807 061e 09F4 brne .+2 808 0620 DBC1 rjmp .L102 809 0622 0597 sbiw r24,5 810 0624 09F4 brne .+2 811 0626 DBC1 rjmp .L103 812 0628 E4C1 rjmp .L104 813 .L68: 814 062a 8091 0000 lds r24,ServoNickOffset.4 815 062e 9091 0000 lds r25,(ServoNickOffset.4)+1 816 0632 9C01 movw r18,r24 817 0634 220F lsl r18 818 0636 331F rol r19 819 0638 280F add r18,r24 820 063a 391F adc r19,r25 821 063c 8091 0000 lds r24,Parameter_ServoNickControl 822 0640 9927 clr r25 823 0642 880F lsl r24 824 0644 991F rol r25 825 0646 880F lsl r24 826 0648 991F rol r25 827 064a 280F add r18,r24 828 064c 391F adc r19,r25 829 064e 37FF sbrs r19,7 830 0650 02C0 rjmp .L69 831 0652 2D5F subi r18,lo8(-(3)) 832 0654 3F4F sbci r19,hi8(-(3)) 833 .L69: 834 0656 C901 movw r24,r18 835 0658 9595 asr r25 836 065a 8795 ror r24 837 065c 9595 asr r25 838 065e 8795 ror r24 839 0660 9093 0000 sts (ServoNickOffset.4)+1,r25 840 0664 8093 0000 sts ServoNickOffset.4,r24 841 0668 9093 0000 sts (ServoNickValue)+1,r25 842 066c 8093 0000 sts ServoNickValue,r24 843 0670 8091 0000 lds r24,EE_Parameter+98 844 0674 6091 0000 lds r22,EE_Parameter+46 845 0678 2091 0000 lds r18,IntegralNick 846 067c 3091 0000 lds r19,(IntegralNick)+1 847 0680 4091 0000 lds r20,(IntegralNick)+2 848 0684 5091 0000 lds r21,(IntegralNick)+3 849 0688 80FF sbrs r24,0 850 068a 2CC0 rjmp .L70 851 068c 7727 clr r23 852 068e 8827 clr r24 853 0690 9927 clr r25 854 0692 EA01 movw r28,r20 855 0694 D901 movw r26,r18 856 0696 57FF sbrs r21,7 857 0698 04C0 rjmp .L71 858 069a A158 subi r26,lo8(-(127)) 859 069c BF4F sbci r27,hi8(-(127)) 860 069e CF4F sbci r28,hlo8(-(127)) 861 06a0 DF4F sbci r29,hhi8(-(127)) 862 .L71: 863 06a2 27E0 ldi r18,7 864 06a4 D595 1: asr r29 865 06a6 C795 ror r28 866 06a8 B795 ror r27 867 06aa A795 ror r26 868 06ac 2A95 dec r18 869 06ae D1F7 brne 1b 870 06b0 9D01 movw r18,r26 871 06b2 AE01 movw r20,r28 872 06b4 0E94 0000 call __mulsi3 873 06b8 9B01 movw r18,r22 874 06ba AC01 movw r20,r24 875 06bc 97FF sbrs r25,7 876 06be 04C0 rjmp .L72 877 06c0 215C subi r18,lo8(-(63)) 878 06c2 3F4F sbci r19,hi8(-(63)) 879 06c4 4F4F sbci r20,hlo8(-(63)) 880 06c6 5F4F sbci r21,hhi8(-(63)) 881 .L72: 882 06c8 F6E0 ldi r31,6 883 06ca 5595 1: asr r21 884 06cc 4795 ror r20 885 06ce 3795 ror r19 886 06d0 2795 ror r18 887 06d2 FA95 dec r31 888 06d4 D1F7 brne 1b 889 06d6 8091 0000 lds r24,ServoNickValue 890 06da 9091 0000 lds r25,(ServoNickValue)+1 891 06de 820F add r24,r18 892 06e0 931F adc r25,r19 893 06e2 27C0 rjmp .L124 894 .L70: 895 06e4 7727 clr r23 896 06e6 8827 clr r24 897 06e8 9927 clr r25 898 06ea 57FF sbrs r21,7 899 06ec 04C0 rjmp .L74 900 06ee 2158 subi r18,lo8(-(127)) 901 06f0 3F4F sbci r19,hi8(-(127)) 902 06f2 4F4F sbci r20,hlo8(-(127)) 903 06f4 5F4F sbci r21,hhi8(-(127)) 904 .L74: 905 06f6 E7E0 ldi r30,7 906 06f8 5595 1: asr r21 907 06fa 4795 ror r20 908 06fc 3795 ror r19 909 06fe 2795 ror r18 910 0700 EA95 dec r30 911 0702 D1F7 brne 1b 912 0704 0E94 0000 call __mulsi3 913 0708 9B01 movw r18,r22 914 070a AC01 movw r20,r24 915 070c 97FF sbrs r25,7 916 070e 04C0 rjmp .L75 917 0710 215C subi r18,lo8(-(63)) 918 0712 3F4F sbci r19,hi8(-(63)) 919 0714 4F4F sbci r20,hlo8(-(63)) 920 0716 5F4F sbci r21,hhi8(-(63)) 921 .L75: 922 0718 66E0 ldi r22,6 923 071a 5595 1: asr r21 924 071c 4795 ror r20 925 071e 3795 ror r19 926 0720 2795 ror r18 927 0722 6A95 dec r22 928 0724 D1F7 brne 1b 929 0726 8091 0000 lds r24,ServoNickValue 930 072a 9091 0000 lds r25,(ServoNickValue)+1 931 072e 821B sub r24,r18 932 0730 930B sbc r25,r19 933 .L124: 934 0732 9093 0000 sts (ServoNickValue)+1,r25 935 0736 8093 0000 sts ServoNickValue,r24 936 073a 8091 0000 lds r24,EE_Parameter+47 937 073e 282F mov r18,r24 938 0740 3327 clr r19 939 0742 220F lsl r18 940 0744 331F rol r19 941 0746 220F lsl r18 942 0748 331F rol r19 943 074a 8091 0000 lds r24,ServoNickValue 944 074e 9091 0000 lds r25,(ServoNickValue)+1 945 0752 8217 cp r24,r18 946 0754 9307 cpc r25,r19 947 0756 7CF0 brlt .L125 948 0758 8091 0000 lds r24,EE_Parameter+48 949 075c 282F mov r18,r24 950 075e 3327 clr r19 951 0760 220F lsl r18 952 0762 331F rol r19 953 0764 220F lsl r18 954 0766 331F rol r19 955 0768 8091 0000 lds r24,ServoNickValue 956 076c 9091 0000 lds r25,(ServoNickValue)+1 957 0770 2817 cp r18,r24 958 0772 3907 cpc r19,r25 959 0774 24F4 brge .L77 960 .L125: 961 0776 3093 0000 sts (ServoNickValue)+1,r19 962 077a 2093 0000 sts ServoNickValue,r18 963 .L77: 964 077e 8091 0000 lds r24,RemainingPulse.1 965 0782 9091 0000 lds r25,(RemainingPulse.1)+1 966 0786 2091 0000 lds r18,ServoNickValue 967 078a 3091 0000 lds r19,(ServoNickValue)+1 968 078e 820F add r24,r18 969 0790 931F adc r25,r19 970 0792 8050 subi r24,lo8(-(-512)) 971 0794 9240 sbci r25,hi8(-(-512)) 972 0796 9093 0000 sts (RemainingPulse.1)+1,r25 973 079a 8093 0000 sts RemainingPulse.1,r24 974 079e 8091 0000 lds r24,ServoNickValue 975 07a2 9091 0000 lds r25,(ServoNickValue)+1 976 07a6 97FD sbrc r25,7 977 07a8 0396 adiw r24,3 978 .L79: 979 07aa 9595 asr r25 980 07ac 8795 ror r24 981 07ae 9595 asr r25 982 07b0 8795 ror r24 983 07b2 9093 0000 sts (ServoNickValue)+1,r25 984 07b6 8093 0000 sts ServoNickValue,r24 985 07ba 2EC1 rjmp .L67 986 .L80: 987 07bc 8091 0000 lds r24,ServoRollOffset.5 988 07c0 9091 0000 lds r25,(ServoRollOffset.5)+1 989 07c4 9C01 movw r18,r24 990 07c6 220F lsl r18 991 07c8 331F rol r19 992 07ca 280F add r18,r24 993 07cc 391F adc r19,r25 994 07ce 8091 0000 lds r24,Parameter_ServoRollControl 995 07d2 9927 clr r25 996 07d4 880F lsl r24 997 07d6 991F rol r25 998 07d8 880F lsl r24 999 07da 991F rol r25 1000 07dc 280F add r18,r24 1001 07de 391F adc r19,r25 1002 07e0 37FF sbrs r19,7 1003 07e2 02C0 rjmp .L81 1004 07e4 2D5F subi r18,lo8(-(3)) 1005 07e6 3F4F sbci r19,hi8(-(3)) 1006 .L81: 1007 07e8 C901 movw r24,r18 1008 07ea 9595 asr r25 1009 07ec 8795 ror r24 1010 07ee 9595 asr r25 1011 07f0 8795 ror r24 1012 07f2 9093 0000 sts (ServoRollOffset.5)+1,r25 1013 07f6 8093 0000 sts ServoRollOffset.5,r24 1014 07fa 9093 0000 sts (ServoRollValue)+1,r25 1015 07fe 8093 0000 sts ServoRollValue,r24 1016 0802 8091 0000 lds r24,EE_Parameter+98 1017 0806 6091 0000 lds r22,EE_Parameter+50 1018 080a A091 0000 lds r26,IntegralRoll 1019 080e B091 0000 lds r27,(IntegralRoll)+1 1020 0812 C091 0000 lds r28,(IntegralRoll)+2 1021 0816 D091 0000 lds r29,(IntegralRoll)+3 1022 081a 81FF sbrs r24,1 1023 081c 2AC0 rjmp .L82 1024 081e 7727 clr r23 1025 0820 8827 clr r24 1026 0822 9927 clr r25 1027 0824 9D01 movw r18,r26 1028 0826 AE01 movw r20,r28 1029 0828 D7FF sbrs r29,7 1030 082a 04C0 rjmp .L83 1031 082c 2158 subi r18,lo8(-(127)) 1032 082e 3F4F sbci r19,hi8(-(127)) 1033 0830 4F4F sbci r20,hlo8(-(127)) 1034 0832 5F4F sbci r21,hhi8(-(127)) 1035 .L83: 1036 0834 E7E0 ldi r30,7 1037 0836 5595 1: asr r21 1038 0838 4795 ror r20 1039 083a 3795 ror r19 1040 083c 2795 ror r18 1041 083e EA95 dec r30 1042 0840 D1F7 brne 1b 1043 0842 0E94 0000 call __mulsi3 1044 0846 9B01 movw r18,r22 1045 0848 AC01 movw r20,r24 1046 084a 97FF sbrs r25,7 1047 084c 04C0 rjmp .L84 1048 084e 215C subi r18,lo8(-(63)) 1049 0850 3F4F sbci r19,hi8(-(63)) 1050 0852 4F4F sbci r20,hlo8(-(63)) 1051 0854 5F4F sbci r21,hhi8(-(63)) 1052 .L84: 1053 0856 C6E0 ldi r28,6 1054 0858 5595 1: asr r21 1055 085a 4795 ror r20 1056 085c 3795 ror r19 1057 085e 2795 ror r18 1058 0860 CA95 dec r28 1059 0862 D1F7 brne 1b 1060 0864 8091 0000 lds r24,ServoRollValue 1061 0868 9091 0000 lds r25,(ServoRollValue)+1 1062 086c 820F add r24,r18 1063 086e 931F adc r25,r19 1064 0870 29C0 rjmp .L126 1065 .L82: 1066 0872 7727 clr r23 1067 0874 8827 clr r24 1068 0876 9927 clr r25 1069 0878 9D01 movw r18,r26 1070 087a AE01 movw r20,r28 1071 087c D7FF sbrs r29,7 1072 087e 04C0 rjmp .L86 1073 0880 2158 subi r18,lo8(-(127)) 1074 0882 3F4F sbci r19,hi8(-(127)) 1075 0884 4F4F sbci r20,hlo8(-(127)) 1076 0886 5F4F sbci r21,hhi8(-(127)) 1077 .L86: 1078 0888 B7E0 ldi r27,7 1079 088a 5595 1: asr r21 1080 088c 4795 ror r20 1081 088e 3795 ror r19 1082 0890 2795 ror r18 1083 0892 BA95 dec r27 1084 0894 D1F7 brne 1b 1085 0896 0E94 0000 call __mulsi3 1086 089a 9B01 movw r18,r22 1087 089c AC01 movw r20,r24 1088 089e 97FF sbrs r25,7 1089 08a0 04C0 rjmp .L87 1090 08a2 215C subi r18,lo8(-(63)) 1091 08a4 3F4F sbci r19,hi8(-(63)) 1092 08a6 4F4F sbci r20,hlo8(-(63)) 1093 08a8 5F4F sbci r21,hhi8(-(63)) 1094 .L87: 1095 08aa A6E0 ldi r26,6 1096 08ac 5595 1: asr r21 1097 08ae 4795 ror r20 1098 08b0 3795 ror r19 1099 08b2 2795 ror r18 1100 08b4 AA95 dec r26 1101 08b6 D1F7 brne 1b 1102 08b8 8091 0000 lds r24,ServoRollValue 1103 08bc 9091 0000 lds r25,(ServoRollValue)+1 1104 08c0 821B sub r24,r18 1105 08c2 930B sbc r25,r19 1106 .L126: 1107 08c4 9093 0000 sts (ServoRollValue)+1,r25 1108 08c8 8093 0000 sts ServoRollValue,r24 1109 08cc 8091 0000 lds r24,EE_Parameter+51 1110 08d0 282F mov r18,r24 1111 08d2 3327 clr r19 1112 08d4 220F lsl r18 1113 08d6 331F rol r19 1114 08d8 220F lsl r18 1115 08da 331F rol r19 1116 08dc 8091 0000 lds r24,ServoRollValue 1117 08e0 9091 0000 lds r25,(ServoRollValue)+1 1118 08e4 8217 cp r24,r18 1119 08e6 9307 cpc r25,r19 1120 08e8 7CF0 brlt .L127 1121 08ea 8091 0000 lds r24,EE_Parameter+52 1122 08ee 282F mov r18,r24 1123 08f0 3327 clr r19 1124 08f2 220F lsl r18 1125 08f4 331F rol r19 1126 08f6 220F lsl r18 1127 08f8 331F rol r19 1128 08fa 8091 0000 lds r24,ServoRollValue 1129 08fe 9091 0000 lds r25,(ServoRollValue)+1 1130 0902 2817 cp r18,r24 1131 0904 3907 cpc r19,r25 1132 0906 24F4 brge .L89 1133 .L127: 1134 0908 3093 0000 sts (ServoRollValue)+1,r19 1135 090c 2093 0000 sts ServoRollValue,r18 1136 .L89: 1137 0910 8091 0000 lds r24,RemainingPulse.1 1138 0914 9091 0000 lds r25,(RemainingPulse.1)+1 1139 0918 2091 0000 lds r18,ServoRollValue 1140 091c 3091 0000 lds r19,(ServoRollValue)+1 1141 0920 820F add r24,r18 1142 0922 931F adc r25,r19 1143 0924 8050 subi r24,lo8(-(-512)) 1144 0926 9240 sbci r25,hi8(-(-512)) 1145 0928 9093 0000 sts (RemainingPulse.1)+1,r25 1146 092c 8093 0000 sts RemainingPulse.1,r24 1147 0930 8091 0000 lds r24,ServoRollValue 1148 0934 9091 0000 lds r25,(ServoRollValue)+1 1149 0938 97FD sbrc r25,7 1150 093a 0396 adiw r24,3 1151 .L91: 1152 093c 9595 asr r25 1153 093e 8795 ror r24 1154 0940 9595 asr r25 1155 0942 8795 ror r24 1156 0944 9093 0000 sts (ServoRollValue)+1,r25 1157 0948 8093 0000 sts ServoRollValue,r24 1158 094c 65C0 rjmp .L67 1159 .L92: 1160 094e 8091 0000 lds r24,EE_Parameter+7 1161 0952 E82F mov r30,r24 1162 0954 FF27 clr r31 1163 0956 EE0F add r30,r30 1164 0958 FF1F adc r31,r31 1165 095a E050 subi r30,lo8(-(PPM_in)) 1166 095c F040 sbci r31,hi8(-(PPM_in)) 1167 095e 8081 ld r24,Z 1168 0960 9181 ldd r25,Z+1 1169 0962 805E subi r24,lo8(-32) 1170 0964 9F4F sbci r25,hi8(-32) 1171 0966 ACF1 brlt .L132 1172 0968 8081 ld r24,Z 1173 096a 9181 ldd r25,Z+1 1174 096c 8197 sbiw r24,33 1175 096e 1CF0 brlt .L95 1176 0970 8CED ldi r24,lo8(1500) 1177 0972 95E0 ldi r25,hi8(1500) 1178 0974 4DC0 rjmp .L128 1179 .L95: 1180 0976 8091 0000 lds r24,CameraShutterCycle 1181 097a 9091 0000 lds r25,(CameraShutterCycle)+1 1182 097e C297 sbiw r24,50 1183 0980 78F0 brlo .L129 1184 0982 2091 0000 lds r18,CameraShutterCycleCounter 1185 0986 3091 0000 lds r19,(CameraShutterCycleCounter)+1 1186 098a 8091 0000 lds r24,CameraShutterCycle 1187 098e 9091 0000 lds r25,(CameraShutterCycle)+1 1188 0992 2817 cp r18,r24 1189 0994 3907 cpc r19,r25 1190 0996 49F4 brne .L99 1191 0998 1092 0000 sts (CameraShutterCycleCounter)+1,__zero_reg__ 1192 099c 1092 0000 sts CameraShutterCycleCounter,__zero_reg__ 1193 .L129: 1194 09a0 5093 0000 sts (RemainingPulse.1)+1,r21 1195 09a4 4093 0000 sts RemainingPulse.1,r20 1196 09a8 37C0 rjmp .L67 1197 .L99: 1198 09aa 8091 0000 lds r24,CameraShutterCycleCounter 1199 09ae 9091 0000 lds r25,(CameraShutterCycleCounter)+1 1200 09b2 0196 adiw r24,1 1201 09b4 9093 0000 sts (CameraShutterCycleCounter)+1,r25 1202 09b8 8093 0000 sts CameraShutterCycleCounter,r24 1203 09bc 2091 0000 lds r18,CameraShutterCycleCounter 1204 09c0 3091 0000 lds r19,(CameraShutterCycleCounter)+1 1205 09c4 8091 0000 lds r24,CameraShutterCycleOnCount 1206 09c8 9091 0000 lds r25,(CameraShutterCycleOnCount)+1 1207 09cc 2817 cp r18,r24 1208 09ce 3907 cpc r19,r25 1209 09d0 19F5 brne .L67 1210 .L132: 1211 09d2 87E7 ldi r24,lo8(375) 1212 09d4 91E0 ldi r25,hi8(375) 1213 09d6 1CC0 rjmp .L128 1214 .L102: 1215 09d8 8091 0000 lds r24,Parameter_Servo4 1216 09dc 02C0 rjmp .L133 1217 .L103: 1218 09de 8091 0000 lds r24,Parameter_Servo5 1219 .L133: 1220 09e2 9927 clr r25 1221 09e4 880F lsl r24 1222 09e6 991F rol r25 1223 09e8 880F lsl r24 1224 09ea 991F rol r25 1225 09ec 8755 subi r24,lo8(-(425)) 1226 09ee 9E4F sbci r25,hi8(-(425)) 1227 09f0 0FC0 rjmp .L128 1228 .L104: 1229 09f2 FF27 clr r31 1230 09f4 EE0F add r30,r30 1231 09f6 FF1F adc r31,r31 1232 09f8 E050 subi r30,lo8(-(PPM_in)) 1233 09fa F040 sbci r31,hi8(-(PPM_in)) 1234 09fc 2081 ld r18,Z 1235 09fe 3181 ldd r19,Z+1 1236 0a00 220F add r18,r18 1237 0a02 331F adc r19,r19 1238 0a04 8091 0000 lds r24,RemainingPulse.1 1239 0a08 9091 0000 lds r25,(RemainingPulse.1)+1 1240 0a0c 820F add r24,r18 1241 0a0e 931F adc r25,r19 1242 .L128: 1243 0a10 9093 0000 sts (RemainingPulse.1)+1,r25 1244 0a14 8093 0000 sts RemainingPulse.1,r24 1245 .L67: 1246 0a18 8091 0000 lds r24,RemainingPulse.1 1247 0a1c 9091 0000 lds r25,(RemainingPulse.1)+1 1248 0a20 45E0 ldi r20,hi8(1501) 1249 0a22 8D3D cpi r24,lo8(1501) 1250 0a24 9407 cpc r25,r20 1251 0a26 18F0 brlo .L106 1252 0a28 8CED ldi r24,lo8(1500) 1253 0a2a 95E0 ldi r25,hi8(1500) 1254 0a2c 05C0 rjmp .L130 1255 .L106: 1256 0a2e 8757 subi r24,lo8(375) 1257 0a30 9140 sbci r25,hi8(375) 1258 0a32 30F4 brsh .L107 1259 0a34 87E7 ldi r24,lo8(375) 1260 0a36 91E0 ldi r25,hi8(375) 1261 .L130: 1262 0a38 9093 0000 sts (RemainingPulse.1)+1,r25 1263 0a3c 8093 0000 sts RemainingPulse.1,r24 1264 .L107: 1265 0a40 2091 0000 lds r18,RemainingPulse.1 1266 0a44 3091 0000 lds r19,(RemainingPulse.1)+1 1267 0a48 2C5B subi r18,lo8(-(-188)) 1268 0a4a 3040 sbci r19,hi8(-(-188)) 1269 0a4c 3093 0000 sts (RemainingPulse.1)+1,r19 1270 0a50 2093 0000 sts RemainingPulse.1,r18 1271 0a54 8091 0000 lds r24,ServoFrameTime.2 1272 0a58 9091 0000 lds r25,(ServoFrameTime.2)+1 1273 0a5c 820F add r24,r18 1274 0a5e 931F adc r25,r19 1275 .L134: 1276 0a60 9093 0000 sts (ServoFrameTime.2)+1,r25 1277 0a64 8093 0000 sts ServoFrameTime.2,r24 1278 0a68 2FC0 rjmp .L109 1279 .L64: 1280 0a6a 8091 B000 lds r24,176 1281 0a6e 8064 ori r24,lo8(64) 1282 0a70 8093 B000 sts 176,r24 1283 0a74 8CEB ldi r24,lo8(188) 1284 0a76 90E0 ldi r25,hi8(188) 1285 0a78 9093 0000 sts (RemainingPulse.1)+1,r25 1286 0a7c 8093 0000 sts RemainingPulse.1,r24 1287 0a80 8091 0000 lds r24,ServoFrameTime.2 1288 0a84 9091 0000 lds r25,(ServoFrameTime.2)+1 1289 0a88 8454 subi r24,lo8(-(188)) 1290 0a8a 9F4F sbci r25,hi8(-(188)) 1291 0a8c 9093 0000 sts (ServoFrameTime.2)+1,r25 1292 0a90 8093 0000 sts ServoFrameTime.2,r24 1293 0a94 8091 0000 lds r24,ServoActive 1294 0a98 8823 tst r24 1295 0a9a 21F0 breq .L112 1296 0a9c 8091 0000 lds r24,SenderOkay 1297 0aa0 853B cpi r24,lo8(-75) 1298 0aa2 20F4 brsh .L111 1299 .L112: 1300 0aa4 8091 0000 lds r24,ServoActive 1301 0aa8 8230 cpi r24,lo8(2) 1302 0aaa 11F4 brne .L110 1303 .L111: 1304 0aac 4698 cbi 40-0x20,6 1305 0aae 01C0 rjmp .L113 1306 .L110: 1307 0ab0 469A sbi 40-0x20,6 1308 .L113: 1309 0ab2 8091 0000 lds r24,ServoIndex.3 1310 0ab6 8F5F subi r24,lo8(-(1)) 1311 0ab8 8093 0000 sts ServoIndex.3,r24 1312 0abc 9091 0000 lds r25,EE_Parameter+53 1313 0ac0 9817 cp r25,r24 1314 0ac2 10F4 brsh .L109 1315 0ac4 1092 0000 sts ServoIndex.3,__zero_reg__ 1316 .L109: 1317 0ac8 81E0 ldi r24,lo8(1) 1318 0aca 8093 0000 sts PulseOutput.0,r24 1319 .L62: 1320 0ace 2091 0000 lds r18,RemainingPulse.1 1321 0ad2 3091 0000 lds r19,(RemainingPulse.1)+1 1322 0ad6 81E0 ldi r24,hi8(383) 1323 0ad8 2F37 cpi r18,lo8(383) 1324 0ada 3807 cpc r19,r24 1325 0adc 30F0 brlo .L115 1326 0ade 8FEF ldi r24,lo8(-1) 1327 0ae0 8093 B300 sts 179,r24 1328 0ae4 2F5F subi r18,lo8(-(-255)) 1329 0ae6 3040 sbci r19,hi8(-(-255)) 1330 0ae8 0FC0 rjmp .L131 1331 .L115: 1332 0aea 2F3F cpi r18,255 1333 0aec 3105 cpc r19,__zero_reg__ 1334 0aee C9F0 breq .L117 1335 0af0 C0F0 brlo .L117 1336 0af2 A901 movw r20,r18 1337 0af4 4F5F subi r20,lo8(-(-255)) 1338 0af6 5040 sbci r21,hi8(-(-255)) 1339 0af8 4F37 cpi r20,127 1340 0afa 5105 cpc r21,__zero_reg__ 1341 0afc 50F4 brsh .L118 1342 0afe 80E8 ldi r24,lo8(-128) 1343 0b00 8093 B300 sts 179,r24 1344 0b04 2058 subi r18,lo8(-(-128)) 1345 0b06 3040 sbci r19,hi8(-(-128)) 1346 .L131: 1347 0b08 3093 0000 sts (RemainingPulse.1)+1,r19 1348 0b0c 2093 0000 sts RemainingPulse.1,r18 1349 0b10 12C0 rjmp .L43 1350 .L118: 1351 0b12 8FEF ldi r24,lo8(-1) 1352 0b14 8093 B300 sts 179,r24 1353 0b18 5093 0000 sts (RemainingPulse.1)+1,r21 1354 0b1c 4093 0000 sts RemainingPulse.1,r20 1355 0b20 0AC0 rjmp .L43 1356 .L117: 1357 0b22 8091 0000 lds r24,RemainingPulse.1 1358 0b26 8093 B300 sts 179,r24 1359 0b2a 1092 0000 sts (RemainingPulse.1)+1,__zero_reg__ 1360 0b2e 1092 0000 sts RemainingPulse.1,__zero_reg__ 1361 0b32 1092 0000 sts PulseOutput.0,__zero_reg__ 1362 .L43: 1363 /* epilogue: frame size=0 */ 1364 0b36 FF91 pop r31 1365 0b38 EF91 pop r30 1366 0b3a DF91 pop r29 1367 0b3c CF91 pop r28 1368 0b3e BF91 pop r27 1369 0b40 AF91 pop r26 1370 0b42 9F91 pop r25 1371 0b44 8F91 pop r24 1372 0b46 7F91 pop r23 1373 0b48 6F91 pop r22 1374 0b4a 5F91 pop r21 1375 0b4c 4F91 pop r20 1376 0b4e 3F91 pop r19 1377 0b50 2F91 pop r18 1378 0b52 0F90 pop __tmp_reg__ 1379 0b54 0FBE out __SREG__,__tmp_reg__ 1380 0b56 0F90 pop __tmp_reg__ 1381 0b58 1F90 pop __zero_reg__ 1382 0b5a 1895 reti 1383 /* epilogue end (size=19) */ 1384 /* function __vector_9 size 1056 (1018) */ 1386 .lcomm tim_main,2 1387 /* File "timer0.c": code 1469 = 0x05bd (1385), prologues 39, epilogues 45 */ DEFINED SYMBOLS *ABS*:00000000 timer0.c C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:3 *ABS*:0000003f __SREG__ C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:4 *ABS*:0000003e __SP_H__ C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:5 *ABS*:0000003d __SP_L__ C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:6 *ABS*:00000000 __tmp_reg__ C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:7 *ABS*:00000001 __zero_reg__ C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:15 .bss:00000000 ServoRollValue C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:21 .bss:00000002 ServoNickValue C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:27 .data:00000000 BeepMuster C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:34 .bss:00000004 ServoActive C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:40 .bss:00000005 SendSPI C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:46 .bss:00000006 beeptime C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:52 .bss:00000008 cntKompass C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:58 .bss:0000000a UpdateMotor C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:64 .bss:0000000b CountMilliseconds C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:69 .data:00000002 CameraShutterCycleOnCount .bss:0000000d CameraShutterCycleCounter C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:71 .bss:0000000f CameraShutterCycle C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:75 .data:00000004 cnt_1ms.6 C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:72 .bss:00000011 cnt.7 C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:77 .bss:00000012 compass_active.8 C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:82 .text:00000000 __vector_18 C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:301 .text:0000020e SetDelay C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:317 .text:00000220 CheckDelay C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:336 .text:00000238 Delay_ms C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:357 .text:00000252 Delay_ms_Mess C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:387 .text:00000282 TIMER2_Init C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:443 .text:00000302 Timer_Init C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:471 .bss:00000019 tim_main C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:78 .bss:00000013 PulseOutput.0 C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:468 .bss:00000014 RemainingPulse.1 C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:469 .bss:00000016 ServoFrameTime.2 C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:470 .bss:00000018 ServoIndex.3 C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:475 .data:00000005 ServoNickOffset.4 C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:479 .data:00000007 ServoRollOffset.5 C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:484 .text:00000330 __vector_9 UNDEFINED SYMBOLS __do_copy_data __do_clear_bss SpektrumTimer PlatinenVersion NaviDataOkay EE_Parameter __udivmodhi4 KompassValue KompassStartwert __divmodhi4 KompassRichtung AdReady Parameter_UserParam8 Parameter_ServoNickControl IntegralNick __mulsi3 Parameter_ServoRollControl IntegralRoll PPM_in Parameter_Servo4 Parameter_Servo5 SenderOkay