1 .file "timer2.c" 2 __SREG__ = 0x3f 3 __SP_H__ = 0x3e 4 __SP_L__ = 0x3d 5 __CCP__ = 0x34 6 __tmp_reg__ = 0 7 __zero_reg__ = 1 8 .text 9 .global TIMER2_Init 11 TIMER2_Init: 12 /* prologue: function */ 13 /* frame size = 0 */ 14 0000 9FB7 in r25,__SREG__ 15 /* #APP */ 16 ; 78 "timer2.c" 1 17 0002 F894 cli 18 ; 0 "" 2 19 /* #NOAPP */ 20 0004 5798 cbi 42-32,7 21 0006 5F98 cbi 43-32,7 22 0008 3E9A sbi 39-32,6 23 000a 469A sbi 40-32,6 24 000c A0EB ldi r26,lo8(176) 25 000e B0E0 ldi r27,hi8(176) 26 0010 8C91 ld r24,X 27 0012 8F70 andi r24,lo8(15) 28 0014 8C93 st X,r24 29 0016 8C91 ld r24,X 30 0018 8360 ori r24,lo8(3) 31 001a 8C93 st X,r24 32 001c E1EB ldi r30,lo8(177) 33 001e F0E0 ldi r31,hi8(177) 34 0020 8081 ld r24,Z 35 0022 8B73 andi r24,lo8(59) 36 0024 8083 st Z,r24 37 0026 8081 ld r24,Z 38 0028 8B60 ori r24,lo8(11) 39 002a 8083 st Z,r24 40 002c 1092 B200 sts 178,__zero_reg__ 41 0030 8FEF ldi r24,lo8(-1) 42 0032 8093 B300 sts 179,r24 43 0036 8C91 ld r24,X 44 0038 8068 ori r24,lo8(-128) 45 003a 8C93 st X,r24 46 003c E0E7 ldi r30,lo8(112) 47 003e F0E0 ldi r31,hi8(112) 48 0040 8081 ld r24,Z 49 0042 8A7F andi r24,lo8(-6) 50 0044 8083 st Z,r24 51 0046 8081 ld r24,Z 52 0048 8260 ori r24,lo8(2) 53 004a 8083 st Z,r24 54 004c 9FBF out __SREG__,r25 55 /* epilogue start */ 56 004e 0895 ret 58 .global Servo_On 60 Servo_On: 61 /* prologue: function */ 62 /* frame size = 0 */ 63 0050 81E0 ldi r24,lo8(1) 64 0052 8093 0000 sts ServoActive,r24 65 0056 579A sbi 42-32,7 66 /* epilogue start */ 67 0058 0895 ret 69 .global Servo_Off 71 Servo_Off: 72 /* prologue: function */ 73 /* frame size = 0 */ 74 005a 1092 0000 sts ServoActive,__zero_reg__ 75 005e 5798 cbi 42-32,7 76 0060 469A sbi 40-32,6 77 /* epilogue start */ 78 0062 0895 ret 80 .global __vector_9 82 __vector_9: 83 0064 1F92 push __zero_reg__ 84 0066 0F92 push r0 85 0068 0FB6 in r0,__SREG__ 86 006a 0F92 push r0 87 006c 1124 clr __zero_reg__ 88 006e CF92 push r12 89 0070 DF92 push r13 90 0072 EF92 push r14 91 0074 FF92 push r15 92 0076 0F93 push r16 93 0078 1F93 push r17 94 007a 2F93 push r18 95 007c 3F93 push r19 96 007e 4F93 push r20 97 0080 5F93 push r21 98 0082 6F93 push r22 99 0084 7F93 push r23 100 0086 8F93 push r24 101 0088 9F93 push r25 102 008a AF93 push r26 103 008c BF93 push r27 104 008e EF93 push r30 105 0090 FF93 push r31 106 /* prologue: Signal */ 107 /* frame size = 0 */ 108 0092 8091 0000 lds r24,BoardRelease 109 0096 8431 cpi r24,lo8(20) 110 0098 00F4 brsh .L8 111 009a 8091 0000 lds r24,PulseOutput.1543 112 009e 8823 tst r24 113 00a0 01F4 brne .+2 114 00a2 00C0 rjmp .L51 115 .L59: 116 00a4 4091 0000 lds r20,RemainingPulse.1544 117 00a8 5091 0000 lds r21,(RemainingPulse.1544)+1 118 00ac 81E0 ldi r24,hi8(383) 119 00ae 4F37 cpi r20,lo8(383) 120 00b0 5807 cpc r21,r24 121 00b2 00F0 brlo .+2 122 00b4 00C0 rjmp .L61 123 .L43: 124 00b6 4F3F cpi r20,255 125 00b8 5105 cpc r21,__zero_reg__ 126 00ba 01F0 breq .+4 127 00bc 00F0 brlo .+2 128 00be 00C0 rjmp .L62 129 00c0 4093 B300 sts 179,r20 130 00c4 1092 0000 sts (RemainingPulse.1544)+1,__zero_reg__ 131 00c8 1092 0000 sts RemainingPulse.1544,__zero_reg__ 132 00cc 1092 0000 sts PulseOutput.1543,__zero_reg__ 133 .L47: 134 /* epilogue start */ 135 00d0 FF91 pop r31 136 00d2 EF91 pop r30 137 00d4 BF91 pop r27 138 00d6 AF91 pop r26 139 00d8 9F91 pop r25 140 00da 8F91 pop r24 141 00dc 7F91 pop r23 142 00de 6F91 pop r22 143 00e0 5F91 pop r21 144 00e2 4F91 pop r20 145 00e4 3F91 pop r19 146 00e6 2F91 pop r18 147 00e8 1F91 pop r17 148 00ea 0F91 pop r16 149 00ec FF90 pop r15 150 00ee EF90 pop r14 151 00f0 DF90 pop r13 152 00f2 CF90 pop r12 153 00f4 0F90 pop r0 154 00f6 0FBE out __SREG__,r0 155 00f8 0F90 pop r0 156 00fa 1F90 pop __zero_reg__ 157 00fc 1895 reti 158 .L8: 159 00fe 8091 0000 lds r24,PulseOutput.1543 160 0102 8823 tst r24 161 0104 01F4 brne .L59 162 0106 8091 B000 lds r24,176 163 010a 86FF sbrs r24,6 164 010c 00C0 rjmp .L20 165 010e 8091 B000 lds r24,176 166 0112 8F7B andi r24,lo8(-65) 167 0114 8093 B000 sts 176,r24 168 0118 E091 0000 lds r30,ServoIndex.1546 169 011c EE23 tst r30 170 011e 01F0 breq .+2 171 0120 00C0 rjmp .L21 172 0122 8091 0000 lds r24,ParamSet+47 173 0126 90E0 ldi r25,lo8(0) 174 0128 2DED ldi r18,lo8(1757) 175 012a 36E0 ldi r19,hi8(1757) 176 012c A901 movw r20,r18 177 012e 849F mul r24,r20 178 0130 9001 movw r18,r0 179 0132 859F mul r24,r21 180 0134 300D add r19,r0 181 0136 949F mul r25,r20 182 0138 300D add r19,r0 183 013a 1124 clr r1 184 013c 8091 0000 lds r24,ServoFrameTime.1545 185 0140 9091 0000 lds r25,(ServoFrameTime.1545)+1 186 0144 281B sub r18,r24 187 0146 390B sbc r19,r25 188 0148 3093 0000 sts (RemainingPulse.1544)+1,r19 189 014c 2093 0000 sts RemainingPulse.1544,r18 190 0150 1092 0000 sts (ServoFrameTime.1545)+1,__zero_reg__ 191 0154 1092 0000 sts ServoFrameTime.1545,__zero_reg__ 192 0158 469A sbi 40-32,6 193 015a A901 movw r20,r18 194 .L22: 195 015c 81E0 ldi r24,lo8(1) 196 015e 8093 0000 sts PulseOutput.1543,r24 197 0162 81E0 ldi r24,hi8(383) 198 0164 4F37 cpi r20,lo8(383) 199 0166 5807 cpc r21,r24 200 0168 00F4 brsh .+2 201 016a 00C0 rjmp .L43 202 .L61: 203 016c 8FEF ldi r24,lo8(-1) 204 016e 8093 B300 sts 179,r24 205 0172 4F5F subi r20,lo8(-(-255)) 206 0174 5040 sbci r21,hi8(-(-255)) 207 0176 5093 0000 sts (RemainingPulse.1544)+1,r21 208 017a 4093 0000 sts RemainingPulse.1544,r20 209 017e 00C0 rjmp .L47 210 .L62: 211 0180 9A01 movw r18,r20 212 0182 2F5F subi r18,lo8(-(-255)) 213 0184 3040 sbci r19,hi8(-(-255)) 214 0186 2F37 cpi r18,127 215 0188 3105 cpc r19,__zero_reg__ 216 018a 00F0 brlo .+2 217 018c 00C0 rjmp .L46 218 018e 80E8 ldi r24,lo8(-128) 219 0190 8093 B300 sts 179,r24 220 0194 4058 subi r20,lo8(-(-128)) 221 0196 5040 sbci r21,hi8(-(-128)) 222 0198 5093 0000 sts (RemainingPulse.1544)+1,r21 223 019c 4093 0000 sts RemainingPulse.1544,r20 224 01a0 00C0 rjmp .L47 225 .L51: 226 01a2 8091 B000 lds r24,176 227 01a6 86FF sbrs r24,6 228 01a8 00C0 rjmp .L10 229 01aa 8091 B000 lds r24,176 230 01ae 8F7B andi r24,lo8(-65) 231 01b0 8093 B000 sts 176,r24 232 01b4 8091 0000 lds r24,FCParam+21 233 01b8 482F mov r20,r24 234 01ba 50E0 ldi r21,lo8(0) 235 01bc 440F lsl r20 236 01be 551F rol r21 237 01c0 440F lsl r20 238 01c2 551F rol r21 239 01c4 2091 0000 lds r18,ServoNickOffset.1547 240 01c8 3091 0000 lds r19,(ServoNickOffset.1547)+1 241 01cc C901 movw r24,r18 242 01ce 880F lsl r24 243 01d0 991F rol r25 244 01d2 820F add r24,r18 245 01d4 931F adc r25,r19 246 01d6 480F add r20,r24 247 01d8 591F adc r21,r25 248 01da 57FD sbrc r21,7 249 01dc 00C0 rjmp .L63 250 .L11: 251 01de CA01 movw r24,r20 252 01e0 9595 asr r25 253 01e2 8795 ror r24 254 01e4 9595 asr r25 255 01e6 8795 ror r24 256 01e8 9093 0000 sts (ServoNickOffset.1547)+1,r25 257 01ec 8093 0000 sts ServoNickOffset.1547,r24 258 01f0 9093 0000 sts (ServoNickValue)+1,r25 259 01f4 8093 0000 sts ServoNickValue,r24 260 01f8 8091 0000 lds r24,ParamSet+87 261 01fc 80FF sbrs r24,0 262 01fe 00C0 rjmp .L12 263 0200 C090 0000 lds r12,ServoNickValue 264 0204 D090 0000 lds r13,(ServoNickValue)+1 265 0208 E090 0000 lds r14,ParamSet+40 266 020c FF24 clr r15 267 020e 00E0 ldi r16,lo8(0) 268 0210 10E0 ldi r17,hi8(0) 269 0212 6091 0000 lds r22,IntegralGyroNick 270 0216 7091 0000 lds r23,(IntegralGyroNick)+1 271 021a 8091 0000 lds r24,(IntegralGyroNick)+2 272 021e 9091 0000 lds r25,(IntegralGyroNick)+3 273 0222 20E8 ldi r18,lo8(128) 274 0224 30E0 ldi r19,hi8(128) 275 0226 40E0 ldi r20,hlo8(128) 276 0228 50E0 ldi r21,hhi8(128) 277 022a 0E94 0000 call __divmodsi4 278 022e C801 movw r24,r16 279 0230 B701 movw r22,r14 280 0232 0E94 0000 call __mulsi3 281 0236 660F lsl r22 282 0238 771F rol r23 283 023a 881F rol r24 284 023c 991F rol r25 285 023e 660F lsl r22 286 0240 771F rol r23 287 0242 881F rol r24 288 0244 991F rol r25 289 0246 20E0 ldi r18,lo8(256) 290 0248 31E0 ldi r19,hi8(256) 291 024a 40E0 ldi r20,hlo8(256) 292 024c 50E0 ldi r21,hhi8(256) 293 024e 0E94 0000 call __divmodsi4 294 0252 C20E add r12,r18 295 0254 D31E adc r13,r19 296 0256 D092 0000 sts (ServoNickValue)+1,r13 297 025a C092 0000 sts ServoNickValue,r12 298 .L13: 299 025e 8091 0000 lds r24,ParamSet+41 300 0262 282F mov r18,r24 301 0264 30E0 ldi r19,lo8(0) 302 0266 220F lsl r18 303 0268 331F rol r19 304 026a 220F lsl r18 305 026c 331F rol r19 306 026e 8091 0000 lds r24,ServoNickValue 307 0272 9091 0000 lds r25,(ServoNickValue)+1 308 0276 8217 cp r24,r18 309 0278 9307 cpc r25,r19 310 027a 04F4 brge .+2 311 027c 00C0 rjmp .L55 312 027e 8091 0000 lds r24,ParamSet+42 313 0282 282F mov r18,r24 314 0284 30E0 ldi r19,lo8(0) 315 0286 220F lsl r18 316 0288 331F rol r19 317 028a 220F lsl r18 318 028c 331F rol r19 319 028e 8091 0000 lds r24,ServoNickValue 320 0292 9091 0000 lds r25,(ServoNickValue)+1 321 0296 2817 cp r18,r24 322 0298 3907 cpc r19,r25 323 029a 04F4 brge .+2 324 029c 00C0 rjmp .L55 325 .L15: 326 029e 2091 0000 lds r18,ServoNickValue 327 02a2 3091 0000 lds r19,(ServoNickValue)+1 328 02a6 2755 subi r18,lo8(-(425)) 329 02a8 3E4F sbci r19,hi8(-(425)) 330 02aa 3093 0000 sts (RemainingPulse.1544)+1,r19 331 02ae 2093 0000 sts RemainingPulse.1544,r18 332 02b2 8091 0000 lds r24,ServoNickValue 333 02b6 9091 0000 lds r25,(ServoNickValue)+1 334 02ba 97FD sbrc r25,7 335 02bc 00C0 rjmp .L64 336 .L16: 337 02be 9595 asr r25 338 02c0 8795 ror r24 339 02c2 9595 asr r25 340 02c4 8795 ror r24 341 02c6 9093 0000 sts (ServoNickValue)+1,r25 342 02ca 8093 0000 sts ServoNickValue,r24 343 02ce 45E0 ldi r20,hi8(1501) 344 02d0 2D3D cpi r18,lo8(1501) 345 02d2 3407 cpc r19,r20 346 02d4 00F4 brsh .+2 347 02d6 00C0 rjmp .L17 348 02d8 8CED ldi r24,lo8(1500) 349 02da 95E0 ldi r25,hi8(1500) 350 02dc 9093 0000 sts (RemainingPulse.1544)+1,r25 351 02e0 8093 0000 sts RemainingPulse.1544,r24 352 .L18: 353 02e4 4091 0000 lds r20,RemainingPulse.1544 354 02e8 5091 0000 lds r21,(RemainingPulse.1544)+1 355 02ec 5093 0000 sts (ServoFrameTime.1545)+1,r21 356 02f0 4093 0000 sts ServoFrameTime.1545,r20 357 02f4 00C0 rjmp .L22 358 .L46: 359 02f6 8FEF ldi r24,lo8(-1) 360 02f8 8093 B300 sts 179,r24 361 02fc 3093 0000 sts (RemainingPulse.1544)+1,r19 362 0300 2093 0000 sts RemainingPulse.1544,r18 363 0304 00C0 rjmp .L47 364 .L20: 365 0306 8091 B000 lds r24,176 366 030a 8064 ori r24,lo8(64) 367 030c 8093 B000 sts 176,r24 368 0310 8CEB ldi r24,lo8(188) 369 0312 90E0 ldi r25,hi8(188) 370 0314 9093 0000 sts (RemainingPulse.1544)+1,r25 371 0318 8093 0000 sts RemainingPulse.1544,r24 372 031c 8091 0000 lds r24,ServoFrameTime.1545 373 0320 9091 0000 lds r25,(ServoFrameTime.1545)+1 374 0324 8454 subi r24,lo8(-(188)) 375 0326 9F4F sbci r25,hi8(-(188)) 376 0328 9093 0000 sts (ServoFrameTime.1545)+1,r25 377 032c 8093 0000 sts ServoFrameTime.1545,r24 378 0330 8091 0000 lds r24,ServoActive 379 0334 8823 tst r24 380 0336 01F0 breq .L41 381 0338 8091 0000 lds r24,RC_Quality 382 033c 853B cpi r24,lo8(-75) 383 033e 00F0 brlo .+2 384 0340 00C0 rjmp .L65 385 .L41: 386 0342 469A sbi 40-32,6 387 .L42: 388 0344 8091 0000 lds r24,ServoIndex.1546 389 0348 8F5F subi r24,lo8(-(1)) 390 034a 8093 0000 sts ServoIndex.1546,r24 391 034e 9091 0000 lds r25,ParamSet+47 392 0352 9817 cp r25,r24 393 0354 00F4 brsh .L58 394 0356 1092 0000 sts ServoIndex.1546,__zero_reg__ 395 .L58: 396 035a 4091 0000 lds r20,RemainingPulse.1544 397 035e 5091 0000 lds r21,(RemainingPulse.1544)+1 398 0362 00C0 rjmp .L22 399 .L10: 400 0364 8091 B000 lds r24,176 401 0368 8064 ori r24,lo8(64) 402 036a 8093 B000 sts 176,r24 403 036e 8091 0000 lds r24,ParamSet+47 404 0372 90E0 ldi r25,lo8(0) 405 0374 2DED ldi r18,lo8(1757) 406 0376 36E0 ldi r19,hi8(1757) 407 0378 829F mul r24,r18 408 037a A001 movw r20,r0 409 037c 839F mul r24,r19 410 037e 500D add r21,r0 411 0380 929F mul r25,r18 412 0382 500D add r21,r0 413 0384 1124 clr r1 414 0386 8091 0000 lds r24,ServoFrameTime.1545 415 038a 9091 0000 lds r25,(ServoFrameTime.1545)+1 416 038e 481B sub r20,r24 417 0390 590B sbc r21,r25 418 0392 00C0 rjmp .L22 419 .L55: 420 0394 3093 0000 sts (ServoNickValue)+1,r19 421 0398 2093 0000 sts ServoNickValue,r18 422 039c 00C0 rjmp .L15 423 .L21: 424 039e 89EA ldi r24,lo8(937) 425 03a0 93E0 ldi r25,hi8(937) 426 03a2 9093 0000 sts (RemainingPulse.1544)+1,r25 427 03a6 8093 0000 sts RemainingPulse.1544,r24 428 03aa E130 cpi r30,lo8(1) 429 03ac 01F4 brne .+2 430 03ae 00C0 rjmp .L24 431 03b0 E230 cpi r30,lo8(2) 432 03b2 01F4 brne .+2 433 03b4 00C0 rjmp .L66 434 03b6 F0E0 ldi r31,lo8(0) 435 03b8 EE0F lsl r30 436 03ba FF1F rol r31 437 03bc E050 subi r30,lo8(-(PPM_in)) 438 03be F040 sbci r31,hi8(-(PPM_in)) 439 03c0 8081 ld r24,Z 440 03c2 9181 ldd r25,Z+1 441 03c4 880F lsl r24 442 03c6 991F rol r25 443 03c8 8755 subi r24,lo8(-(937)) 444 03ca 9C4F sbci r25,hi8(-(937)) 445 03cc 9093 0000 sts (RemainingPulse.1544)+1,r25 446 03d0 8093 0000 sts RemainingPulse.1544,r24 447 .L32: 448 03d4 4091 0000 lds r20,RemainingPulse.1544 449 03d8 5091 0000 lds r21,(RemainingPulse.1544)+1 450 03dc 85E0 ldi r24,hi8(1501) 451 03de 4D3D cpi r20,lo8(1501) 452 03e0 5807 cpc r21,r24 453 03e2 00F4 brsh .+2 454 03e4 00C0 rjmp .L39 455 03e6 4CED ldi r20,lo8(1500) 456 03e8 55E0 ldi r21,hi8(1500) 457 .L40: 458 03ea 4C5B subi r20,lo8(-(-188)) 459 03ec 5040 sbci r21,hi8(-(-188)) 460 03ee 8091 0000 lds r24,ServoFrameTime.1545 461 03f2 9091 0000 lds r25,(ServoFrameTime.1545)+1 462 03f6 840F add r24,r20 463 03f8 951F adc r25,r21 464 03fa 9093 0000 sts (ServoFrameTime.1545)+1,r25 465 03fe 8093 0000 sts ServoFrameTime.1545,r24 466 0402 00C0 rjmp .L22 467 .L12: 468 0404 C090 0000 lds r12,ServoNickValue 469 0408 D090 0000 lds r13,(ServoNickValue)+1 470 040c E090 0000 lds r14,ParamSet+40 471 0410 FF24 clr r15 472 0412 00E0 ldi r16,lo8(0) 473 0414 10E0 ldi r17,hi8(0) 474 0416 6091 0000 lds r22,IntegralGyroNick 475 041a 7091 0000 lds r23,(IntegralGyroNick)+1 476 041e 8091 0000 lds r24,(IntegralGyroNick)+2 477 0422 9091 0000 lds r25,(IntegralGyroNick)+3 478 0426 20E8 ldi r18,lo8(128) 479 0428 30E0 ldi r19,hi8(128) 480 042a 40E0 ldi r20,hlo8(128) 481 042c 50E0 ldi r21,hhi8(128) 482 042e 0E94 0000 call __divmodsi4 483 0432 C801 movw r24,r16 484 0434 B701 movw r22,r14 485 0436 0E94 0000 call __mulsi3 486 043a 660F lsl r22 487 043c 771F rol r23 488 043e 881F rol r24 489 0440 991F rol r25 490 0442 660F lsl r22 491 0444 771F rol r23 492 0446 881F rol r24 493 0448 991F rol r25 494 044a 20E0 ldi r18,lo8(256) 495 044c 31E0 ldi r19,hi8(256) 496 044e 40E0 ldi r20,hlo8(256) 497 0450 50E0 ldi r21,hhi8(256) 498 0452 0E94 0000 call __divmodsi4 499 0456 C21A sub r12,r18 500 0458 D30A sbc r13,r19 501 045a D092 0000 sts (ServoNickValue)+1,r13 502 045e C092 0000 sts ServoNickValue,r12 503 0462 00C0 rjmp .L13 504 .L17: 505 0464 2757 subi r18,lo8(375) 506 0466 3140 sbci r19,hi8(375) 507 0468 00F0 brlo .+2 508 046a 00C0 rjmp .L18 509 046c 87E7 ldi r24,lo8(375) 510 046e 91E0 ldi r25,hi8(375) 511 0470 9093 0000 sts (RemainingPulse.1544)+1,r25 512 0474 8093 0000 sts RemainingPulse.1544,r24 513 0478 00C0 rjmp .L18 514 .L65: 515 047a 4698 cbi 40-32,6 516 047c 00C0 rjmp .L42 517 .L24: 518 047e 8091 0000 lds r24,FCParam+21 519 0482 482F mov r20,r24 520 0484 50E0 ldi r21,lo8(0) 521 0486 440F lsl r20 522 0488 551F rol r21 523 048a 440F lsl r20 524 048c 551F rol r21 525 048e 2091 0000 lds r18,ServoNickOffset.1547 526 0492 3091 0000 lds r19,(ServoNickOffset.1547)+1 527 0496 C901 movw r24,r18 528 0498 880F lsl r24 529 049a 991F rol r25 530 049c 820F add r24,r18 531 049e 931F adc r25,r19 532 04a0 480F add r20,r24 533 04a2 591F adc r21,r25 534 04a4 57FD sbrc r21,7 535 04a6 00C0 rjmp .L67 536 .L26: 537 04a8 CA01 movw r24,r20 538 04aa 9595 asr r25 539 04ac 8795 ror r24 540 04ae 9595 asr r25 541 04b0 8795 ror r24 542 04b2 9093 0000 sts (ServoNickOffset.1547)+1,r25 543 04b6 8093 0000 sts ServoNickOffset.1547,r24 544 04ba 9093 0000 sts (ServoNickValue)+1,r25 545 04be 8093 0000 sts ServoNickValue,r24 546 04c2 8091 0000 lds r24,ParamSet+87 547 04c6 80FF sbrs r24,0 548 04c8 00C0 rjmp .L27 549 04ca C090 0000 lds r12,ServoNickValue 550 04ce D090 0000 lds r13,(ServoNickValue)+1 551 04d2 E090 0000 lds r14,ParamSet+40 552 04d6 FF24 clr r15 553 04d8 00E0 ldi r16,lo8(0) 554 04da 10E0 ldi r17,hi8(0) 555 04dc 6091 0000 lds r22,IntegralGyroNick 556 04e0 7091 0000 lds r23,(IntegralGyroNick)+1 557 04e4 8091 0000 lds r24,(IntegralGyroNick)+2 558 04e8 9091 0000 lds r25,(IntegralGyroNick)+3 559 04ec 20E8 ldi r18,lo8(128) 560 04ee 30E0 ldi r19,hi8(128) 561 04f0 40E0 ldi r20,hlo8(128) 562 04f2 50E0 ldi r21,hhi8(128) 563 04f4 0E94 0000 call __divmodsi4 564 04f8 C801 movw r24,r16 565 04fa B701 movw r22,r14 566 04fc 0E94 0000 call __mulsi3 567 0500 660F lsl r22 568 0502 771F rol r23 569 0504 881F rol r24 570 0506 991F rol r25 571 0508 660F lsl r22 572 050a 771F rol r23 573 050c 881F rol r24 574 050e 991F rol r25 575 0510 20E0 ldi r18,lo8(256) 576 0512 31E0 ldi r19,hi8(256) 577 0514 40E0 ldi r20,hlo8(256) 578 0516 50E0 ldi r21,hhi8(256) 579 0518 0E94 0000 call __divmodsi4 580 051c C20E add r12,r18 581 051e D31E adc r13,r19 582 0520 D092 0000 sts (ServoNickValue)+1,r13 583 0524 C092 0000 sts ServoNickValue,r12 584 .L28: 585 0528 8091 0000 lds r24,ParamSet+41 586 052c 282F mov r18,r24 587 052e 30E0 ldi r19,lo8(0) 588 0530 220F lsl r18 589 0532 331F rol r19 590 0534 220F lsl r18 591 0536 331F rol r19 592 0538 8091 0000 lds r24,ServoNickValue 593 053c 9091 0000 lds r25,(ServoNickValue)+1 594 0540 8217 cp r24,r18 595 0542 9307 cpc r25,r19 596 0544 04F0 brlt .L56 597 0546 8091 0000 lds r24,ParamSet+42 598 054a 282F mov r18,r24 599 054c 30E0 ldi r19,lo8(0) 600 054e 220F lsl r18 601 0550 331F rol r19 602 0552 220F lsl r18 603 0554 331F rol r19 604 0556 8091 0000 lds r24,ServoNickValue 605 055a 9091 0000 lds r25,(ServoNickValue)+1 606 055e 2817 cp r18,r24 607 0560 3907 cpc r19,r25 608 0562 04F4 brge .L30 609 .L56: 610 0564 3093 0000 sts (ServoNickValue)+1,r19 611 0568 2093 0000 sts ServoNickValue,r18 612 .L30: 613 056c 8091 0000 lds r24,ServoNickValue 614 0570 9091 0000 lds r25,(ServoNickValue)+1 615 0574 8755 subi r24,lo8(-(425)) 616 0576 9E4F sbci r25,hi8(-(425)) 617 0578 9093 0000 sts (RemainingPulse.1544)+1,r25 618 057c 8093 0000 sts RemainingPulse.1544,r24 619 0580 8091 0000 lds r24,ServoNickValue 620 0584 9091 0000 lds r25,(ServoNickValue)+1 621 0588 97FD sbrc r25,7 622 058a 00C0 rjmp .L68 623 .L31: 624 058c 9595 asr r25 625 058e 8795 ror r24 626 0590 9595 asr r25 627 0592 8795 ror r24 628 0594 9093 0000 sts (ServoNickValue)+1,r25 629 0598 8093 0000 sts ServoNickValue,r24 630 059c 00C0 rjmp .L32 631 .L39: 632 059e 81E0 ldi r24,hi8(375) 633 05a0 4737 cpi r20,lo8(375) 634 05a2 5807 cpc r21,r24 635 05a4 00F0 brlo .+2 636 05a6 00C0 rjmp .L40 637 05a8 47E7 ldi r20,lo8(375) 638 05aa 51E0 ldi r21,hi8(375) 639 05ac 00C0 rjmp .L40 640 .L64: 641 05ae 0396 adiw r24,3 642 05b0 00C0 rjmp .L16 643 .L63: 644 05b2 4D5F subi r20,lo8(-(3)) 645 05b4 5F4F sbci r21,hi8(-(3)) 646 05b6 00C0 rjmp .L11 647 .L66: 648 05b8 8091 0000 lds r24,FCParam+22 649 05bc 482F mov r20,r24 650 05be 50E0 ldi r21,lo8(0) 651 05c0 440F lsl r20 652 05c2 551F rol r21 653 05c4 440F lsl r20 654 05c6 551F rol r21 655 05c8 2091 0000 lds r18,ServoRollOffset.1548 656 05cc 3091 0000 lds r19,(ServoRollOffset.1548)+1 657 05d0 C901 movw r24,r18 658 05d2 880F lsl r24 659 05d4 991F rol r25 660 05d6 820F add r24,r18 661 05d8 931F adc r25,r19 662 05da 480F add r20,r24 663 05dc 591F adc r21,r25 664 05de 57FD sbrc r21,7 665 05e0 00C0 rjmp .L69 666 .L33: 667 05e2 CA01 movw r24,r20 668 05e4 9595 asr r25 669 05e6 8795 ror r24 670 05e8 9595 asr r25 671 05ea 8795 ror r24 672 05ec 9093 0000 sts (ServoRollOffset.1548)+1,r25 673 05f0 8093 0000 sts ServoRollOffset.1548,r24 674 05f4 9093 0000 sts (ServoRollValue)+1,r25 675 05f8 8093 0000 sts ServoRollValue,r24 676 05fc 8091 0000 lds r24,ParamSet+87 677 0600 81FF sbrs r24,1 678 0602 00C0 rjmp .L34 679 0604 C090 0000 lds r12,ServoRollValue 680 0608 D090 0000 lds r13,(ServoRollValue)+1 681 060c E090 0000 lds r14,ParamSet+44 682 0610 FF24 clr r15 683 0612 00E0 ldi r16,lo8(0) 684 0614 10E0 ldi r17,hi8(0) 685 0616 6091 0000 lds r22,IntegralGyroRoll 686 061a 7091 0000 lds r23,(IntegralGyroRoll)+1 687 061e 8091 0000 lds r24,(IntegralGyroRoll)+2 688 0622 9091 0000 lds r25,(IntegralGyroRoll)+3 689 0626 20E8 ldi r18,lo8(128) 690 0628 30E0 ldi r19,hi8(128) 691 062a 40E0 ldi r20,hlo8(128) 692 062c 50E0 ldi r21,hhi8(128) 693 062e 0E94 0000 call __divmodsi4 694 0632 C801 movw r24,r16 695 0634 B701 movw r22,r14 696 0636 0E94 0000 call __mulsi3 697 063a 660F lsl r22 698 063c 771F rol r23 699 063e 881F rol r24 700 0640 991F rol r25 701 0642 660F lsl r22 702 0644 771F rol r23 703 0646 881F rol r24 704 0648 991F rol r25 705 064a 20E0 ldi r18,lo8(256) 706 064c 31E0 ldi r19,hi8(256) 707 064e 40E0 ldi r20,hlo8(256) 708 0650 50E0 ldi r21,hhi8(256) 709 0652 0E94 0000 call __divmodsi4 710 0656 C20E add r12,r18 711 0658 D31E adc r13,r19 712 065a D092 0000 sts (ServoRollValue)+1,r13 713 065e C092 0000 sts ServoRollValue,r12 714 .L35: 715 0662 8091 0000 lds r24,ParamSet+45 716 0666 282F mov r18,r24 717 0668 30E0 ldi r19,lo8(0) 718 066a 220F lsl r18 719 066c 331F rol r19 720 066e 220F lsl r18 721 0670 331F rol r19 722 0672 8091 0000 lds r24,ServoRollValue 723 0676 9091 0000 lds r25,(ServoRollValue)+1 724 067a 8217 cp r24,r18 725 067c 9307 cpc r25,r19 726 067e 04F0 brlt .L57 727 0680 8091 0000 lds r24,ParamSet+46 728 0684 282F mov r18,r24 729 0686 30E0 ldi r19,lo8(0) 730 0688 220F lsl r18 731 068a 331F rol r19 732 068c 220F lsl r18 733 068e 331F rol r19 734 0690 8091 0000 lds r24,ServoRollValue 735 0694 9091 0000 lds r25,(ServoRollValue)+1 736 0698 2817 cp r18,r24 737 069a 3907 cpc r19,r25 738 069c 04F4 brge .L37 739 .L57: 740 069e 3093 0000 sts (ServoRollValue)+1,r19 741 06a2 2093 0000 sts ServoRollValue,r18 742 .L37: 743 06a6 8091 0000 lds r24,ServoRollValue 744 06aa 9091 0000 lds r25,(ServoRollValue)+1 745 06ae 8755 subi r24,lo8(-(425)) 746 06b0 9E4F sbci r25,hi8(-(425)) 747 06b2 9093 0000 sts (RemainingPulse.1544)+1,r25 748 06b6 8093 0000 sts RemainingPulse.1544,r24 749 06ba 8091 0000 lds r24,ServoRollValue 750 06be 9091 0000 lds r25,(ServoRollValue)+1 751 06c2 97FD sbrc r25,7 752 06c4 00C0 rjmp .L70 753 .L38: 754 06c6 9595 asr r25 755 06c8 8795 ror r24 756 06ca 9595 asr r25 757 06cc 8795 ror r24 758 06ce 9093 0000 sts (ServoRollValue)+1,r25 759 06d2 8093 0000 sts ServoRollValue,r24 760 06d6 00C0 rjmp .L32 761 .L34: 762 06d8 C090 0000 lds r12,ServoRollValue 763 06dc D090 0000 lds r13,(ServoRollValue)+1 764 06e0 E090 0000 lds r14,ParamSet+44 765 06e4 FF24 clr r15 766 06e6 00E0 ldi r16,lo8(0) 767 06e8 10E0 ldi r17,hi8(0) 768 06ea 6091 0000 lds r22,IntegralGyroRoll 769 06ee 7091 0000 lds r23,(IntegralGyroRoll)+1 770 06f2 8091 0000 lds r24,(IntegralGyroRoll)+2 771 06f6 9091 0000 lds r25,(IntegralGyroRoll)+3 772 06fa 20E8 ldi r18,lo8(128) 773 06fc 30E0 ldi r19,hi8(128) 774 06fe 40E0 ldi r20,hlo8(128) 775 0700 50E0 ldi r21,hhi8(128) 776 0702 0E94 0000 call __divmodsi4 777 0706 C801 movw r24,r16 778 0708 B701 movw r22,r14 779 070a 0E94 0000 call __mulsi3 780 070e 660F lsl r22 781 0710 771F rol r23 782 0712 881F rol r24 783 0714 991F rol r25 784 0716 660F lsl r22 785 0718 771F rol r23 786 071a 881F rol r24 787 071c 991F rol r25 788 071e 20E0 ldi r18,lo8(256) 789 0720 31E0 ldi r19,hi8(256) 790 0722 40E0 ldi r20,hlo8(256) 791 0724 50E0 ldi r21,hhi8(256) 792 0726 0E94 0000 call __divmodsi4 793 072a C21A sub r12,r18 794 072c D30A sbc r13,r19 795 072e D092 0000 sts (ServoRollValue)+1,r13 796 0732 C092 0000 sts ServoRollValue,r12 797 0736 00C0 rjmp .L35 798 .L27: 799 0738 C090 0000 lds r12,ServoNickValue 800 073c D090 0000 lds r13,(ServoNickValue)+1 801 0740 E090 0000 lds r14,ParamSet+40 802 0744 FF24 clr r15 803 0746 00E0 ldi r16,lo8(0) 804 0748 10E0 ldi r17,hi8(0) 805 074a 6091 0000 lds r22,IntegralGyroNick 806 074e 7091 0000 lds r23,(IntegralGyroNick)+1 807 0752 8091 0000 lds r24,(IntegralGyroNick)+2 808 0756 9091 0000 lds r25,(IntegralGyroNick)+3 809 075a 20E8 ldi r18,lo8(128) 810 075c 30E0 ldi r19,hi8(128) 811 075e 40E0 ldi r20,hlo8(128) 812 0760 50E0 ldi r21,hhi8(128) 813 0762 0E94 0000 call __divmodsi4 814 0766 C801 movw r24,r16 815 0768 B701 movw r22,r14 816 076a 0E94 0000 call __mulsi3 817 076e 660F lsl r22 818 0770 771F rol r23 819 0772 881F rol r24 820 0774 991F rol r25 821 0776 660F lsl r22 822 0778 771F rol r23 823 077a 881F rol r24 824 077c 991F rol r25 825 077e 20E0 ldi r18,lo8(256) 826 0780 31E0 ldi r19,hi8(256) 827 0782 40E0 ldi r20,hlo8(256) 828 0784 50E0 ldi r21,hhi8(256) 829 0786 0E94 0000 call __divmodsi4 830 078a C21A sub r12,r18 831 078c D30A sbc r13,r19 832 078e D092 0000 sts (ServoNickValue)+1,r13 833 0792 C092 0000 sts ServoNickValue,r12 834 0796 00C0 rjmp .L28 835 .L68: 836 0798 0396 adiw r24,3 837 079a 00C0 rjmp .L31 838 .L67: 839 079c 4D5F subi r20,lo8(-(3)) 840 079e 5F4F sbci r21,hi8(-(3)) 841 07a0 00C0 rjmp .L26 842 .L69: 843 07a2 4D5F subi r20,lo8(-(3)) 844 07a4 5F4F sbci r21,hi8(-(3)) 845 07a6 00C0 rjmp .L33 846 .L70: 847 07a8 0396 adiw r24,3 848 07aa 00C0 rjmp .L38 850 .global ServoNickValue 851 .global ServoNickValue 852 .section .bss 855 ServoNickValue: 856 0000 0000 .skip 2,0 857 .global ServoRollValue 858 .global ServoRollValue 861 ServoRollValue: 862 0002 0000 .skip 2,0 863 .global ServoActive 864 .global ServoActive 867 ServoActive: 868 0004 00 .skip 1,0 869 .data 872 ServoRollOffset.1548: 873 0000 FC01 .word 508 876 ServoNickOffset.1547: 877 0002 FC01 .word 508 878 .lcomm ServoIndex.1546,1 879 .lcomm ServoFrameTime.1545,2 880 .lcomm RemainingPulse.1544,2 881 .lcomm PulseOutput.1543,1 882 .global __do_copy_data 883 .global __do_clear_bss DEFINED SYMBOLS *ABS*:00000000 timer2.c C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:2 *ABS*:0000003f __SREG__ C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:3 *ABS*:0000003e __SP_H__ C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:4 *ABS*:0000003d __SP_L__ C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:5 *ABS*:00000034 __CCP__ C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:6 *ABS*:00000000 __tmp_reg__ C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:7 *ABS*:00000001 __zero_reg__ C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:11 .text:00000000 TIMER2_Init C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:60 .text:00000050 Servo_On C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:867 .bss:00000004 ServoActive C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:71 .text:0000005a Servo_Off C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:82 .text:00000064 __vector_9 C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:880 .bss:0000000a PulseOutput.1543 C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:879 .bss:00000008 RemainingPulse.1544 .bss:00000005 ServoIndex.1546 C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:878 .bss:00000006 ServoFrameTime.1545 C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:876 .data:00000002 ServoNickOffset.1547 C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:855 .bss:00000000 ServoNickValue C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:872 .data:00000000 ServoRollOffset.1548 C:\DOKUME~1\LUKEPA~1\LOKALE~1\Temp/ccgdfsVT.s:861 .bss:00000002 ServoRollValue UNDEFINED SYMBOLS BoardRelease ParamSet FCParam IntegralGyroNick __divmodsi4 __mulsi3 RC_Quality PPM_in IntegralGyroRoll __do_copy_data __do_clear_bss