1 .file "uart.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 ANALOG_TEXT 11 .section .progmem.data,"a",@progbits 14 ANALOG_TEXT: 15 0000 416E 676C .ascii "AngleNick " 15 654E 6963 15 6B20 2020 15 2020 2020 16 0010 416E 676C .ascii "AngleRoll " 16 6552 6F6C 16 6C20 2020 16 2020 2020 17 0020 4163 634E .ascii "AccNick " 17 6963 6B20 17 2020 2020 17 2020 2020 18 0030 4163 6352 .ascii "AccRoll " 18 6F6C 6C20 18 2020 2020 18 2020 2020 19 0040 5961 7747 .ascii "YawGyro " 19 7972 6F20 19 2020 2020 19 2020 2020 20 0050 4865 6967 .ascii "Height Value " 20 6874 2056 20 616C 7565 20 2020 2020 21 0060 4163 635A .ascii "AccZ " 21 2020 2020 21 2020 2020 21 2020 2020 22 0070 4761 7320 .ascii "Gas " 22 2020 2020 22 2020 2020 22 2020 2020 23 0080 436F 6D70 .ascii "Compass Value " 23 6173 7320 23 5661 6C75 23 6520 2020 24 0090 566F 6C74 .ascii "Voltage [0.1V] " 24 6167 6520 24 5B30 2E31 24 565D 2020 25 00a0 5265 6365 .ascii "Receiver Level " 25 6976 6572 25 204C 6576 25 656C 2020 26 00b0 4779 726F .ascii "Gyro Compass " 26 2043 6F6D 26 7061 7373 26 2020 2020 27 00c0 4D6F 746F .ascii "Motor 1 " 27 7220 3120 27 2020 2020 27 2020 2020 28 00d0 4D6F 746F .ascii "Motor 2 " 28 7220 3220 28 2020 2020 28 2020 2020 29 00e0 4D6F 746F .ascii "Motor 3 " 29 7220 3320 29 2020 2020 29 2020 2020 30 00f0 4D6F 746F .ascii "Motor 4 " 30 7220 3420 30 2020 2020 30 2020 2020 31 0100 3136 2020 .ascii "16 " 31 2020 2020 31 2020 2020 31 2020 2020 32 0110 3137 2020 .ascii "17 " 32 2020 2020 32 2020 2020 32 2020 2020 33 0120 3138 2020 .ascii "18 " 33 2020 2020 33 2020 2020 33 2020 2020 34 0130 3139 2020 .ascii "19 " 34 2020 2020 34 2020 2020 34 2020 2020 35 0140 5365 7276 .ascii "Servo " 35 6F20 2020 35 2020 2020 35 2020 2020 36 0150 486F 7665 .ascii "Hovergas " 36 7267 6173 36 2020 2020 36 2020 2020 37 0160 4375 7272 .ascii "Current [0.1A] " 37 656E 7420 37 5B30 2E31 37 415D 2020 38 0170 4361 7061 .ascii "Capacity [mAh] " 38 6369 7479 38 205B 6D41 38 685D 2020 39 0180 3234 2020 .ascii "24 " 39 2020 2020 39 2020 2020 39 2020 2020 40 0190 3235 2020 .ascii "25 " 40 2020 2020 40 2020 2020 40 2020 2020 41 01a0 3236 2020 .ascii "26 " 41 2020 2020 41 2020 2020 41 2020 2020 42 01b0 3237 2020 .ascii "27 " 42 2020 2020 42 2020 2020 42 2020 2020 43 01c0 4932 432D .ascii "I2C-Error " 43 4572 726F 43 7220 2020 43 2020 2020 44 01d0 424C 204C .ascii "BL Limit " 44 696D 6974 44 2020 2020 44 2020 2020 45 01e0 4750 535F .ascii "GPS_Nick " 45 4E69 636B 45 2020 2020 45 2020 2020 46 01f0 4750 535F .ascii "GPS_Roll " 46 526F 6C6C 46 2020 2020 46 2020 2020 47 .global AboTimeOut 48 .global AboTimeOut 49 .section .bss 52 AboTimeOut: 53 0000 0000 .skip 2,0 54 .global Display_Interval 55 .global Display_Interval 58 Display_Interval: 59 0002 0000 .skip 2,0 60 .global Intervall3D 61 .global Intervall3D 64 Intervall3D: 65 0004 0000 .skip 2,0 66 .global DebugDataIntervall 67 .global DebugDataIntervall 70 DebugDataIntervall: 71 0006 0000 .skip 2,0 72 .global MeineSlaveAdresse 73 .data 76 MeineSlaveAdresse: 77 0000 01 .byte 1 78 .global PcZugriff 81 PcZugriff: 82 0001 64 .byte 100 83 .global DebugTextAnforderung 86 DebugTextAnforderung: 87 0002 FF .byte -1 88 .global PC_MotortestActive 89 .global PC_MotortestActive 90 .section .bss 93 PC_MotortestActive: 94 0008 00 .skip 1,0 95 .global PC_DebugTimeout 96 .global PC_DebugTimeout 99 PC_DebugTimeout: 100 0009 00 .skip 1,0 101 .global RxDataLen 102 .global RxDataLen 105 RxDataLen: 106 000a 00 .skip 1,0 107 .global pRxData 108 .global pRxData 111 pRxData: 112 000b 0000 .skip 2,0 113 .global AnzahlEmpfangsBytes 114 .global AnzahlEmpfangsBytes 117 AnzahlEmpfangsBytes: 118 000d 00 .skip 1,0 119 .global CntCrcError 120 .global CntCrcError 123 CntCrcError: 124 000e 00 .skip 1,0 125 .global UebertragungAbgeschlossen 126 .data 129 UebertragungAbgeschlossen: 130 0003 01 .byte 1 131 .global NeueKoordinateEmpfangen 132 .global NeueKoordinateEmpfangen 133 .section .bss 136 NeueKoordinateEmpfangen: 137 000f 00 .skip 1,0 138 .global NeuerDatensatzEmpfangen 139 .global NeuerDatensatzEmpfangen 142 NeuerDatensatzEmpfangen: 143 0010 00 .skip 1,0 144 .global SioTmp 145 .global SioTmp 148 SioTmp: 149 0011 00 .skip 1,0 150 .global DisplayLine 151 .global DisplayLine 154 DisplayLine: 155 0012 00 .skip 1,0 156 .global GetPPMChannelAnforderung 157 .global GetPPMChannelAnforderung 160 GetPPMChannelAnforderung: 161 0013 00 .skip 1,0 162 .global GetVersionAnforderung 163 .global GetVersionAnforderung 166 GetVersionAnforderung: 167 0014 00 .skip 1,0 168 .global DebugDataAnforderung 169 .global DebugDataAnforderung 172 DebugDataAnforderung: 173 0015 00 .skip 1,0 174 .global DebugDisplayAnforderung 175 .global DebugDisplayAnforderung 178 DebugDisplayAnforderung: 179 0016 00 .skip 1,0 180 .global DebugDisplayAnforderung1 181 .global DebugDisplayAnforderung1 184 DebugDisplayAnforderung1: 185 0017 00 .skip 1,0 186 .global GetExternalControl 187 .global GetExternalControl 190 GetExternalControl: 191 0018 00 .skip 1,0 192 .lcomm ptr.6,2 193 .text 194 .global __vector_22 196 __vector_22: 197 /* prologue: frame size=0 */ 198 0000 1F92 push __zero_reg__ 199 0002 0F92 push __tmp_reg__ 200 0004 0FB6 in __tmp_reg__,__SREG__ 201 0006 0F92 push __tmp_reg__ 202 0008 1124 clr __zero_reg__ 203 000a 8F93 push r24 204 000c 9F93 push r25 205 000e EF93 push r30 206 0010 FF93 push r31 207 /* prologue end (size=9) */ 208 0012 8091 0000 lds r24,UebertragungAbgeschlossen 209 0016 8823 tst r24 210 0018 E1F4 brne .L2 211 001a 8091 0000 lds r24,ptr.6 212 001e 9091 0000 lds r25,(ptr.6)+1 213 0022 0196 adiw r24,1 214 0024 9093 0000 sts (ptr.6)+1,r25 215 0028 8093 0000 sts ptr.6,r24 216 002c FC01 movw r30,r24 217 002e E050 subi r30,lo8(-(TxdBuffer)) 218 0030 F040 sbci r31,hi8(-(TxdBuffer)) 219 0032 E081 ld r30,Z 220 0034 ED30 cpi r30,lo8(13) 221 0036 19F0 breq .L4 222 0038 803A cpi r24,160 223 003a 9105 cpc r25,__zero_reg__ 224 003c 39F4 brne .L3 225 .L4: 226 003e 1092 0000 sts (ptr.6)+1,__zero_reg__ 227 0042 1092 0000 sts ptr.6,__zero_reg__ 228 0046 81E0 ldi r24,lo8(1) 229 0048 8093 0000 sts UebertragungAbgeschlossen,r24 230 .L3: 231 004c E093 C600 sts 198,r30 232 0050 04C0 rjmp .L1 233 .L2: 234 0052 1092 0000 sts (ptr.6)+1,__zero_reg__ 235 0056 1092 0000 sts ptr.6,__zero_reg__ 236 .L1: 237 /* epilogue: frame size=0 */ 238 005a FF91 pop r31 239 005c EF91 pop r30 240 005e 9F91 pop r25 241 0060 8F91 pop r24 242 0062 0F90 pop __tmp_reg__ 243 0064 0FBE out __SREG__,__tmp_reg__ 244 0066 0F90 pop __tmp_reg__ 245 0068 1F90 pop __zero_reg__ 246 006a 1895 reti 247 /* epilogue end (size=9) */ 248 /* function __vector_22 size 54 (36) */ 250 .lcomm crc.1,2 251 .lcomm crc1.2,1 252 .lcomm crc2.3,1 253 .lcomm buf_ptr.4,1 254 .lcomm UartState.5,1 255 .global __vector_20 257 __vector_20: 258 /* prologue: frame size=0 */ 259 006c 1F92 push __zero_reg__ 260 006e 0F92 push __tmp_reg__ 261 0070 0FB6 in __tmp_reg__,__SREG__ 262 0072 0F92 push __tmp_reg__ 263 0074 1124 clr __zero_reg__ 264 0076 2F93 push r18 265 0078 3F93 push r19 266 007a 4F93 push r20 267 007c 5F93 push r21 268 007e 6F93 push r22 269 0080 7F93 push r23 270 0082 8F93 push r24 271 0084 9F93 push r25 272 0086 AF93 push r26 273 0088 BF93 push r27 274 008a CF93 push r28 275 008c EF93 push r30 276 008e FF93 push r31 277 /* prologue end (size=18) */ 278 0090 90E0 ldi r25,lo8(0) 279 0092 8091 C600 lds r24,198 280 0096 8093 0000 sts SioTmp,r24 281 009a 5091 0000 lds r21,buf_ptr.4 282 009e 503A cpi r21,lo8(-96) 283 00a0 10F0 brlo .L7 284 00a2 9093 0000 sts UartState.5,r25 285 .L7: 286 00a6 8091 0000 lds r24,SioTmp 287 00aa 8D30 cpi r24,lo8(13) 288 00ac 09F0 breq .+2 289 00ae 65C0 rjmp .L8 290 00b0 8091 0000 lds r24,UartState.5 291 00b4 8230 cpi r24,lo8(2) 292 00b6 09F0 breq .+2 293 00b8 60C0 rjmp .L8 294 00ba 9093 0000 sts UartState.5,r25 295 00be 852F mov r24,r21 296 00c0 9927 clr r25 297 00c2 8050 subi r24,lo8(-(RxdBuffer)) 298 00c4 9040 sbci r25,hi8(-(RxdBuffer)) 299 00c6 FC01 movw r30,r24 300 00c8 3297 sbiw r30,2 301 00ca 4081 ld r20,Z 302 00cc 2091 0000 lds r18,crc.1 303 00d0 3091 0000 lds r19,(crc.1)+1 304 00d4 241B sub r18,r20 305 00d6 3109 sbc r19,__zero_reg__ 306 00d8 DC01 movw r26,r24 307 00da 1197 sbiw r26,1 308 00dc 8C91 ld r24,X 309 00de 281B sub r18,r24 310 00e0 3109 sbc r19,__zero_reg__ 311 00e2 C901 movw r24,r18 312 00e4 9F70 andi r25,hi8(4095) 313 00e6 9093 0000 sts (crc.1)+1,r25 314 00ea 8093 0000 sts crc.1,r24 315 00ee 46E0 ldi r20,6 316 00f0 9695 1: lsr r25 317 00f2 8795 ror r24 318 00f4 4A95 dec r20 319 00f6 E1F7 brne 1b 320 00f8 982F mov r25,r24 321 00fa 935C subi r25,lo8(-(61)) 322 00fc 9093 0000 sts crc1.2,r25 323 0100 2F73 andi r18,lo8(63) 324 0102 3070 andi r19,hi8(63) 325 0104 235C subi r18,lo8(-(61)) 326 0106 2093 0000 sts crc2.3,r18 327 010a 8081 ld r24,Z 328 010c 9817 cp r25,r24 329 010e 29F4 brne .L9 330 0110 8C91 ld r24,X 331 0112 2817 cp r18,r24 332 0114 11F4 brne .L9 333 0116 91E0 ldi r25,lo8(1) 334 0118 06C0 rjmp .L10 335 .L9: 336 011a 90E0 ldi r25,lo8(0) 337 011c 8091 0000 lds r24,CntCrcError 338 0120 8F5F subi r24,lo8(-(1)) 339 0122 8093 0000 sts CntCrcError,r24 340 .L10: 341 0126 C091 0000 lds r28,NeuerDatensatzEmpfangen 342 012a CC23 tst r28 343 012c 09F0 breq .+2 344 012e 74C0 rjmp .L6 345 0130 9923 tst r25 346 0132 09F4 brne .+2 347 0134 71C0 rjmp .L6 348 0136 81E0 ldi r24,lo8(1) 349 0138 8093 0000 sts NeuerDatensatzEmpfangen,r24 350 013c 580F add r21,r24 351 013e 5093 0000 sts AnzahlEmpfangsBytes,r21 352 0142 5150 subi r21,lo8(-(-1)) 353 0144 E52F mov r30,r21 354 0146 FF27 clr r31 355 0148 E050 subi r30,lo8(-(RxdBuffer)) 356 014a F040 sbci r31,hi8(-(RxdBuffer)) 357 014c 8DE0 ldi r24,lo8(13) 358 014e 8083 st Z,r24 359 0150 8091 0000 lds r24,RxdBuffer+2 360 0154 8235 cpi r24,lo8(82) 361 0156 09F0 breq .+2 362 0158 5FC0 rjmp .L6 363 015a 0E94 0000 call LcdClear 364 015e 88E1 ldi r24,lo8(24) 365 0160 90E0 ldi r25,hi8(24) 366 0162 2CE0 ldi r18,lo8(12) 367 /* #APP */ 368 0164 0FB6 in __tmp_reg__,__SREG__ 369 0166 F894 cli 370 0168 A895 wdr 371 016a 8093 6000 sts 96,r24 372 016e 0FBE out __SREG__,__tmp_reg__ 373 0170 2093 6000 sts 96,r18 374 /* #NOAPP */ 375 0174 C093 0000 sts ServoActive,r28 376 0178 4FC0 rjmp .L6 377 .L8: 378 017a 2091 0000 lds r18,UartState.5 379 017e 822F mov r24,r18 380 0180 9927 clr r25 381 0182 8130 cpi r24,1 382 0184 9105 cpc r25,__zero_reg__ 383 0186 F9F0 breq .L17 384 0188 8230 cpi r24,2 385 018a 9105 cpc r25,__zero_reg__ 386 018c 1CF4 brge .L22 387 018e 892B or r24,r25 388 0190 21F0 breq .L15 389 0192 40C0 rjmp .L21 390 .L22: 391 0194 0297 sbiw r24,2 392 0196 11F1 breq .L18 393 0198 3DC0 rjmp .L21 394 .L15: 395 019a 8091 0000 lds r24,SioTmp 396 019e 8332 cpi r24,lo8(35) 397 01a0 39F4 brne .L16 398 01a2 8091 0000 lds r24,NeuerDatensatzEmpfangen 399 01a6 8823 tst r24 400 01a8 19F4 brne .L16 401 01aa 81E0 ldi r24,lo8(1) 402 01ac 8093 0000 sts UartState.5,r24 403 .L16: 404 01b0 8091 0000 lds r24,SioTmp 405 01b4 8093 0000 sts RxdBuffer,r24 406 01b8 81E0 ldi r24,lo8(1) 407 01ba 8093 0000 sts buf_ptr.4,r24 408 01be 8091 0000 lds r24,SioTmp 409 01c2 9927 clr r25 410 01c4 22C0 rjmp .L23 411 .L17: 412 01c6 2F5F subi r18,lo8(-(1)) 413 01c8 2093 0000 sts UartState.5,r18 414 01cc E52F mov r30,r21 415 01ce FF27 clr r31 416 01d0 E050 subi r30,lo8(-(RxdBuffer)) 417 01d2 F040 sbci r31,hi8(-(RxdBuffer)) 418 01d4 8091 0000 lds r24,SioTmp 419 01d8 8083 st Z,r24 420 01da 09C0 rjmp .L24 421 .L18: 422 01dc E52F mov r30,r21 423 01de FF27 clr r31 424 01e0 E050 subi r30,lo8(-(RxdBuffer)) 425 01e2 F040 sbci r31,hi8(-(RxdBuffer)) 426 01e4 8091 0000 lds r24,SioTmp 427 01e8 8083 st Z,r24 428 01ea 503A cpi r21,lo8(-96) 429 01ec 20F4 brsh .L19 430 .L24: 431 01ee 5F5F subi r21,lo8(-(1)) 432 01f0 5093 0000 sts buf_ptr.4,r21 433 01f4 02C0 rjmp .L20 434 .L19: 435 01f6 1092 0000 sts UartState.5,__zero_reg__ 436 .L20: 437 01fa 2091 0000 lds r18,SioTmp 438 01fe 8091 0000 lds r24,crc.1 439 0202 9091 0000 lds r25,(crc.1)+1 440 0206 820F add r24,r18 441 0208 911D adc r25,__zero_reg__ 442 .L23: 443 020a 9093 0000 sts (crc.1)+1,r25 444 020e 8093 0000 sts crc.1,r24 445 0212 02C0 rjmp .L6 446 .L21: 447 0214 1092 0000 sts UartState.5,__zero_reg__ 448 .L6: 449 /* epilogue: frame size=0 */ 450 0218 FF91 pop r31 451 021a EF91 pop r30 452 021c CF91 pop r28 453 021e BF91 pop r27 454 0220 AF91 pop r26 455 0222 9F91 pop r25 456 0224 8F91 pop r24 457 0226 7F91 pop r23 458 0228 6F91 pop r22 459 022a 5F91 pop r21 460 022c 4F91 pop r20 461 022e 3F91 pop r19 462 0230 2F91 pop r18 463 0232 0F90 pop __tmp_reg__ 464 0234 0FBE out __SREG__,__tmp_reg__ 465 0236 0F90 pop __tmp_reg__ 466 0238 1F90 pop __zero_reg__ 467 023a 1895 reti 468 /* epilogue end (size=18) */ 469 /* function __vector_20 size 238 (202) */ 471 .global AddCRC 473 AddCRC: 474 /* prologue: frame size=0 */ 475 /* prologue end (size=0) */ 476 023c AC01 movw r20,r24 477 023e A0E0 ldi r26,lo8(0) 478 0240 B0E0 ldi r27,hi8(0) 479 0242 9D01 movw r18,r26 480 0244 A817 cp r26,r24 481 0246 B907 cpc r27,r25 482 0248 48F4 brsh .L31 483 024a E0E0 ldi r30,lo8(TxdBuffer) 484 024c F0E0 ldi r31,hi8(TxdBuffer) 485 .L29: 486 024e 8191 ld r24,Z+ 487 0250 280F add r18,r24 488 0252 311D adc r19,__zero_reg__ 489 0254 1196 adiw r26,1 490 0256 A417 cp r26,r20 491 0258 B507 cpc r27,r21 492 025a C8F3 brlo .L29 493 .L31: 494 025c 3F70 andi r19,hi8(4095) 495 025e FD01 movw r30,r26 496 0260 E050 subi r30,lo8(-(TxdBuffer)) 497 0262 F040 sbci r31,hi8(-(TxdBuffer)) 498 0264 C901 movw r24,r18 499 0266 56E0 ldi r21,6 500 0268 9695 1: lsr r25 501 026a 8795 ror r24 502 026c 5A95 dec r21 503 026e E1F7 brne 1b 504 0270 835C subi r24,lo8(-(61)) 505 0272 8083 st Z,r24 506 0274 1196 adiw r26,1 507 0276 FD01 movw r30,r26 508 0278 E050 subi r30,lo8(-(TxdBuffer)) 509 027a F040 sbci r31,hi8(-(TxdBuffer)) 510 027c 2F73 andi r18,lo8(63) 511 027e 3070 andi r19,hi8(63) 512 0280 822F mov r24,r18 513 0282 835C subi r24,lo8(-(61)) 514 0284 8083 st Z,r24 515 0286 A050 subi r26,lo8(-(TxdBuffer+1)) 516 0288 B040 sbci r27,hi8(-(TxdBuffer+1)) 517 028a 8DE0 ldi r24,lo8(13) 518 028c 8C93 st X,r24 519 028e 1092 0000 sts UebertragungAbgeschlossen,__zero_reg__ 520 0292 8091 0000 lds r24,TxdBuffer 521 0296 8093 C600 sts 198,r24 522 /* epilogue: frame size=0 */ 523 029a 0895 ret 524 /* epilogue end (size=1) */ 525 /* function AddCRC size 49 (48) */ 527 .global SendOutData 529 SendOutData: 530 /* prologue: frame size=0 */ 531 029c A0E0 ldi r26,lo8(0) 532 029e B0E0 ldi r27,hi8(0) 533 02a0 E0E0 ldi r30,pm_lo8(1f) 534 02a2 F0E0 ldi r31,pm_hi8(1f) 535 02a4 0C94 0000 jmp __prologue_saves__+18 536 1: 537 /* prologue end (size=6) */ 538 02a8 2C85 ldd r18,Y+12 539 02aa 9D85 ldd r25,Y+13 540 02ac 0E85 ldd r16,Y+14 541 02ae BB24 clr r11 542 02b0 83E2 ldi r24,lo8(35) 543 02b2 8093 0000 sts TxdBuffer,r24 544 02b6 9F59 subi r25,lo8(-(97)) 545 02b8 9093 0000 sts TxdBuffer+1,r25 546 02bc 2093 0000 sts TxdBuffer+2,r18 547 02c0 33E0 ldi r19,lo8(3) 548 02c2 E32E mov r14,r19 549 02c4 F12C mov r15,__zero_reg__ 550 02c6 0023 tst r16 551 02c8 09F4 brne .+2 552 02ca 9EC0 rjmp .L47 553 02cc CF84 ldd r12,Y+15 554 02ce D888 ldd r13,Y+16 555 02d0 BE01 movw r22,r28 556 02d2 6D5E subi r22,lo8(-(19)) 557 02d4 7F4F sbci r23,hi8(-(19)) 558 02d6 A989 ldd r26,Y+17 559 02d8 BA89 ldd r27,Y+18 560 02da 0150 subi r16,lo8(-(-1)) 561 .L48: 562 02dc 1097 sbiw r26,0 563 02de 09F4 brne .+2 564 02e0 93C0 rjmp .L47 565 02e2 1097 sbiw r26,0 566 02e4 B9F0 breq .L36 567 02e6 F601 movw r30,r12 568 02e8 EB0D add r30,r11 569 02ea F11D adc r31,__zero_reg__ 570 02ec B394 inc r11 571 02ee 9081 ld r25,Z 572 02f0 1197 sbiw r26,1 573 02f2 91F4 brne .L38 574 02f4 0023 tst r16 575 02f6 49F1 breq .L39 576 02f8 FB01 movw r30,r22 577 02fa 6E5F subi r22,lo8(-(2)) 578 02fc 7F4F sbci r23,hi8(-(2)) 579 02fe DB01 movw r26,r22 580 0300 C080 ld r12,Z 581 0302 D180 ldd r13,Z+1 582 0304 6E5F subi r22,lo8(-(2)) 583 0306 7F4F sbci r23,hi8(-(2)) 584 0308 0D90 ld __tmp_reg__,X+ 585 030a BC91 ld r27,X 586 030c A02D mov r26,__tmp_reg__ 587 030e BB24 clr r11 588 0310 0150 subi r16,lo8(-(-1)) 589 0312 02C0 rjmp .L38 590 .L36: 591 0314 90E0 ldi r25,lo8(0) 592 0316 19C0 rjmp .L39 593 .L38: 594 0318 1097 sbiw r26,0 595 031a B9F0 breq .L39 596 031c F601 movw r30,r12 597 031e EB0D add r30,r11 598 0320 F11D adc r31,__zero_reg__ 599 0322 B394 inc r11 600 0324 4081 ld r20,Z 601 0326 1197 sbiw r26,1 602 0328 91F4 brne .L41 603 032a 0023 tst r16 604 032c 41F1 breq .L42 605 032e FB01 movw r30,r22 606 0330 6E5F subi r22,lo8(-(2)) 607 0332 7F4F sbci r23,hi8(-(2)) 608 0334 DB01 movw r26,r22 609 0336 C080 ld r12,Z 610 0338 D180 ldd r13,Z+1 611 033a 6E5F subi r22,lo8(-(2)) 612 033c 7F4F sbci r23,hi8(-(2)) 613 033e 0D90 ld __tmp_reg__,X+ 614 0340 BC91 ld r27,X 615 0342 A02D mov r26,__tmp_reg__ 616 0344 BB24 clr r11 617 0346 0150 subi r16,lo8(-(-1)) 618 0348 02C0 rjmp .L41 619 .L39: 620 034a 40E0 ldi r20,lo8(0) 621 034c 18C0 rjmp .L42 622 .L41: 623 034e 1097 sbiw r26,0 624 0350 B1F0 breq .L42 625 0352 F601 movw r30,r12 626 0354 EB0D add r30,r11 627 0356 F11D adc r31,__zero_reg__ 628 0358 B394 inc r11 629 035a 1081 ld r17,Z 630 035c 1197 sbiw r26,1 631 035e 81F4 brne .L44 632 0360 0023 tst r16 633 0362 71F0 breq .L44 634 0364 FB01 movw r30,r22 635 0366 3296 adiw r30,2 636 0368 DB01 movw r26,r22 637 036a CD90 ld r12,X+ 638 036c DC90 ld r13,X 639 036e BF01 movw r22,r30 640 0370 6E5F subi r22,lo8(-(2)) 641 0372 7F4F sbci r23,hi8(-(2)) 642 0374 A081 ld r26,Z 643 0376 B181 ldd r27,Z+1 644 0378 BB24 clr r11 645 037a 0150 subi r16,lo8(-(-1)) 646 037c 01C0 rjmp .L44 647 .L42: 648 037e 10E0 ldi r17,lo8(0) 649 .L44: 650 0380 F701 movw r30,r14 651 0382 E050 subi r30,lo8(-(TxdBuffer)) 652 0384 F040 sbci r31,hi8(-(TxdBuffer)) 653 0386 892F mov r24,r25 654 0388 8695 lsr r24 655 038a 8695 lsr r24 656 038c 835C subi r24,lo8(-(61)) 657 038e 8083 st Z,r24 658 0390 0894 sec 659 0392 E11C adc r14,__zero_reg__ 660 0394 F11C adc r15,__zero_reg__ 661 0396 F701 movw r30,r14 662 0398 E050 subi r30,lo8(-(TxdBuffer)) 663 039a F040 sbci r31,hi8(-(TxdBuffer)) 664 039c 892F mov r24,r25 665 039e 9927 clr r25 666 03a0 8370 andi r24,lo8(3) 667 03a2 9070 andi r25,hi8(3) 668 03a4 24E0 ldi r18,4 669 03a6 880F 1: lsl r24 670 03a8 991F rol r25 671 03aa 2A95 dec r18 672 03ac E1F7 brne 1b 673 03ae 5527 clr r21 674 03b0 9A01 movw r18,r20 675 03b2 94E0 ldi r25,4 676 03b4 3695 1: lsr r19 677 03b6 2795 ror r18 678 03b8 9A95 dec r25 679 03ba E1F7 brne 1b 680 03bc 822B or r24,r18 681 03be 835C subi r24,lo8(-(61)) 682 03c0 8083 st Z,r24 683 03c2 0894 sec 684 03c4 E11C adc r14,__zero_reg__ 685 03c6 F11C adc r15,__zero_reg__ 686 03c8 F701 movw r30,r14 687 03ca E050 subi r30,lo8(-(TxdBuffer)) 688 03cc F040 sbci r31,hi8(-(TxdBuffer)) 689 03ce 4F70 andi r20,lo8(15) 690 03d0 5070 andi r21,hi8(15) 691 03d2 440F lsl r20 692 03d4 551F rol r21 693 03d6 440F lsl r20 694 03d8 551F rol r21 695 03da 812F mov r24,r17 696 03dc 9927 clr r25 697 03de 26E0 ldi r18,6 698 03e0 9695 1: lsr r25 699 03e2 8795 ror r24 700 03e4 2A95 dec r18 701 03e6 E1F7 brne 1b 702 03e8 842B or r24,r20 703 03ea 835C subi r24,lo8(-(61)) 704 03ec 8083 st Z,r24 705 03ee 0894 sec 706 03f0 E11C adc r14,__zero_reg__ 707 03f2 F11C adc r15,__zero_reg__ 708 03f4 F701 movw r30,r14 709 03f6 E050 subi r30,lo8(-(TxdBuffer)) 710 03f8 F040 sbci r31,hi8(-(TxdBuffer)) 711 03fa 1F73 andi r17,lo8(63) 712 03fc 135C subi r17,lo8(-(61)) 713 03fe 1083 st Z,r17 714 0400 0894 sec 715 0402 E11C adc r14,__zero_reg__ 716 0404 F11C adc r15,__zero_reg__ 717 0406 6ACF rjmp .L48 718 .L47: 719 0408 C701 movw r24,r14 720 040a 0E94 0000 call AddCRC 721 /* epilogue: frame size=0 */ 722 040e E9E0 ldi r30,9 723 0410 0C94 0000 jmp __epilogue_restores__+18 724 /* epilogue end (size=3) */ 725 /* function SendOutData size 191 (182) */ 727 .global Decode64 729 Decode64: 730 /* prologue: frame size=0 */ 731 /* prologue end (size=0) */ 732 0414 A3E0 ldi r26,lo8(3) 733 0416 7A2F mov r23,r26 734 0418 4091 0000 lds r20,AnzahlEmpfangsBytes 735 041c 4650 subi r20,lo8(-(-6)) 736 .L60: 737 041e 4423 tst r20 738 0420 09F4 brne .+2 739 0422 58C0 rjmp .L51 740 0424 E72F mov r30,r23 741 0426 FF27 clr r31 742 0428 E050 subi r30,lo8(-(RxdBuffer)) 743 042a F040 sbci r31,hi8(-(RxdBuffer)) 744 042c 8081 ld r24,Z 745 042e 8D53 subi r24,lo8(-(-61)) 746 0430 7F5F subi r23,lo8(-(1)) 747 0432 E72F mov r30,r23 748 0434 FF27 clr r31 749 0436 E050 subi r30,lo8(-(RxdBuffer)) 750 0438 F040 sbci r31,hi8(-(RxdBuffer)) 751 043a 2081 ld r18,Z 752 043c 2D53 subi r18,lo8(-(-61)) 753 043e 7F5F subi r23,lo8(-(1)) 754 0440 E72F mov r30,r23 755 0442 FF27 clr r31 756 0444 E050 subi r30,lo8(-(RxdBuffer)) 757 0446 F040 sbci r31,hi8(-(RxdBuffer)) 758 0448 3081 ld r19,Z 759 044a 3D53 subi r19,lo8(-(-61)) 760 044c 7F5F subi r23,lo8(-(1)) 761 044e E72F mov r30,r23 762 0450 FF27 clr r31 763 0452 E050 subi r30,lo8(-(RxdBuffer)) 764 0454 F040 sbci r31,hi8(-(RxdBuffer)) 765 0456 6081 ld r22,Z 766 0458 6D53 subi r22,lo8(-(-61)) 767 045a 7F5F subi r23,lo8(-(1)) 768 045c 9927 clr r25 769 045e 880F lsl r24 770 0460 991F rol r25 771 0462 880F lsl r24 772 0464 991F rol r25 773 0466 522F mov r21,r18 774 0468 5295 swap r21 775 046a 5F70 andi r21,0x0f 776 046c 582B or r21,r24 777 046e 822F mov r24,r18 778 0470 9927 clr r25 779 0472 8F70 andi r24,lo8(15) 780 0474 9070 andi r25,hi8(15) 781 0476 F4E0 ldi r31,4 782 0478 880F 1: lsl r24 783 047a 991F rol r25 784 047c FA95 dec r31 785 047e E1F7 brne 1b 786 0480 232F mov r18,r19 787 0482 2695 lsr r18 788 0484 2695 lsr r18 789 0486 282B or r18,r24 790 0488 832F mov r24,r19 791 048a 9927 clr r25 792 048c 8370 andi r24,lo8(3) 793 048e 9070 andi r25,hi8(3) 794 0490 E6E0 ldi r30,6 795 0492 880F 1: lsl r24 796 0494 991F rol r25 797 0496 EA95 dec r30 798 0498 E1F7 brne 1b 799 049a 682B or r22,r24 800 049c 4150 subi r20,lo8(-(-1)) 801 049e 4F3F cpi r20,lo8(-1) 802 04a0 C9F0 breq .L51 803 04a2 EA2F mov r30,r26 804 04a4 FF27 clr r31 805 04a6 E050 subi r30,lo8(-(RxdBuffer)) 806 04a8 F040 sbci r31,hi8(-(RxdBuffer)) 807 04aa 5083 st Z,r21 808 04ac AF5F subi r26,lo8(-(1)) 809 04ae 4150 subi r20,lo8(-(-1)) 810 04b0 4F3F cpi r20,lo8(-1) 811 04b2 81F0 breq .L51 812 04b4 EA2F mov r30,r26 813 04b6 FF27 clr r31 814 04b8 E050 subi r30,lo8(-(RxdBuffer)) 815 04ba F040 sbci r31,hi8(-(RxdBuffer)) 816 04bc 2083 st Z,r18 817 04be AF5F subi r26,lo8(-(1)) 818 04c0 4150 subi r20,lo8(-(-1)) 819 04c2 4F3F cpi r20,lo8(-1) 820 04c4 39F0 breq .L51 821 04c6 EA2F mov r30,r26 822 04c8 FF27 clr r31 823 04ca E050 subi r30,lo8(-(RxdBuffer)) 824 04cc F040 sbci r31,hi8(-(RxdBuffer)) 825 04ce 6083 st Z,r22 826 04d0 AF5F subi r26,lo8(-(1)) 827 04d2 A5CF rjmp .L60 828 .L51: 829 04d4 80E0 ldi r24,lo8(RxdBuffer+3) 830 04d6 90E0 ldi r25,hi8(RxdBuffer+3) 831 04d8 9093 0000 sts (pRxData)+1,r25 832 04dc 8093 0000 sts pRxData,r24 833 04e0 A350 subi r26,lo8(-(-3)) 834 04e2 A093 0000 sts RxDataLen,r26 835 /* epilogue: frame size=0 */ 836 04e6 0895 ret 837 /* epilogue end (size=1) */ 838 /* function Decode64 size 106 (105) */ 840 .global BearbeiteRxDaten 842 BearbeiteRxDaten: 843 /* prologue: frame size=2 */ 844 04e8 A2E0 ldi r26,lo8(2) 845 04ea B0E0 ldi r27,hi8(2) 846 04ec E0E0 ldi r30,pm_lo8(1f) 847 04ee F0E0 ldi r31,pm_hi8(1f) 848 04f0 0C94 0000 jmp __prologue_saves__+30 849 1: 850 /* prologue end (size=6) */ 851 04f4 8091 0000 lds r24,NeuerDatensatzEmpfangen 852 04f8 8823 tst r24 853 04fa 09F4 brne .+2 854 04fc C7C3 rjmp .L61 855 04fe 0E94 0000 call Decode64 856 0502 8091 0000 lds r24,RxdBuffer+1 857 0506 8236 cpi r24,lo8(98) 858 0508 09F0 breq .+2 859 050a 81C2 rjmp .L119 860 050c 8091 0000 lds r24,RxdBuffer+2 861 0510 9927 clr r25 862 0512 8137 cpi r24,113 863 0514 9105 cpc r25,__zero_reg__ 864 0516 09F4 brne .+2 865 0518 C0C0 rjmp .L81 866 051a 8237 cpi r24,114 867 051c 9105 cpc r25,__zero_reg__ 868 051e C4F4 brge .L116 869 0520 8D36 cpi r24,109 870 0522 9105 cpc r25,__zero_reg__ 871 0524 09F4 brne .+2 872 0526 82C0 rjmp .L74 873 0528 8E36 cpi r24,110 874 052a 9105 cpc r25,__zero_reg__ 875 052c 44F4 brge .L117 876 052e 8B34 cpi r24,75 877 0530 9105 cpc r25,__zero_reg__ 878 0532 31F1 breq .L66 879 0534 8636 cpi r24,102 880 0536 9105 cpc r25,__zero_reg__ 881 0538 09F4 brne .+2 882 053a 54C1 rjmp .L96 883 053c 68C2 rjmp .L119 884 .L117: 885 053e 8E36 cpi r24,110 886 0540 9105 cpc r25,__zero_reg__ 887 0542 09F4 brne .+2 888 0544 5BC0 rjmp .L71 889 0546 8037 cpi r24,112 890 0548 9105 cpc r25,__zero_reg__ 891 054a 09F4 brne .+2 892 054c 9FC0 rjmp .L80 893 054e 5FC2 rjmp .L119 894 .L116: 895 0550 8537 cpi r24,117 896 0552 9105 cpc r25,__zero_reg__ 897 0554 09F4 brne .+2 898 0556 E2C1 rjmp .L103 899 0558 8637 cpi r24,118 900 055a 9105 cpc r25,__zero_reg__ 901 055c 44F4 brge .L118 902 055e 8337 cpi r24,115 903 0560 9105 cpc r25,__zero_reg__ 904 0562 09F4 brne .+2 905 0564 DCC0 rjmp .L89 906 0566 8437 cpi r24,116 907 0568 9105 cpc r25,__zero_reg__ 908 056a 39F1 breq .L67 909 056c 50C2 rjmp .L119 910 .L118: 911 056e 8737 cpi r24,119 912 0570 9105 cpc r25,__zero_reg__ 913 0572 09F4 brne .+2 914 0574 10C2 rjmp .L109 915 0576 8937 cpi r24,121 916 0578 9105 cpc r25,__zero_reg__ 917 057a 09F4 brne .+2 918 057c 6AC1 rjmp .L102 919 057e 47C2 rjmp .L119 920 .L66: 921 0580 E091 0000 lds r30,pRxData 922 0584 F091 0000 lds r31,(pRxData)+1 923 0588 8081 ld r24,Z 924 058a 9181 ldd r25,Z+1 925 058c 9093 0000 sts (KompassValue)+1,r25 926 0590 8093 0000 sts KompassValue,r24 927 0594 2091 0000 lds r18,KompassStartwert 928 0598 3091 0000 lds r19,(KompassStartwert)+1 929 059c 821B sub r24,r18 930 059e 930B sbc r25,r19 931 05a0 845E subi r24,lo8(-(540)) 932 05a2 9D4F sbci r25,hi8(-(540)) 933 05a4 68E6 ldi r22,lo8(360) 934 05a6 71E0 ldi r23,hi8(360) 935 05a8 0E94 0000 call __divmodhi4 936 05ac 845B subi r24,lo8(-(-180)) 937 05ae 9040 sbci r25,hi8(-(-180)) 938 05b0 9093 0000 sts (KompassRichtung)+1,r25 939 05b4 8093 0000 sts KompassRichtung,r24 940 05b8 2AC2 rjmp .L119 941 .L67: 942 05ba 8091 0000 lds r24,AnzahlEmpfangsBytes 943 05be A091 0000 lds r26,pRxData 944 05c2 B091 0000 lds r27,(pRxData)+1 945 05c6 8531 cpi r24,lo8(21) 946 05c8 40F0 brlo .L68 947 05ca 80E1 ldi r24,lo8(16) 948 05cc E0E0 ldi r30,lo8(MotorTest) 949 05ce F0E0 ldi r31,hi8(MotorTest) 950 05d0 0D90 ld __tmp_reg__,X+ 951 05d2 0192 st Z+,__tmp_reg__ 952 05d4 8A95 dec r24 953 05d6 E1F7 brne .-8 954 05d8 0DC0 rjmp .L69 955 .L68: 956 05da 8D91 ld r24,X+ 957 05dc 9D91 ld r25,X+ 958 05de 0D90 ld __tmp_reg__,X+ 959 05e0 BC91 ld r27,X 960 05e2 A02D mov r26,__tmp_reg__ 961 05e4 8093 0000 sts MotorTest,r24 962 05e8 9093 0000 sts (MotorTest)+1,r25 963 05ec A093 0000 sts (MotorTest)+2,r26 964 05f0 B093 0000 sts (MotorTest)+3,r27 965 .L69: 966 05f4 80EF ldi r24,lo8(-16) 967 05f6 8093 0000 sts PC_MotortestActive,r24 968 05fa 4BC0 rjmp .L148 969 .L71: 970 05fc 8091 0000 lds r24,UebertragungAbgeschlossen 971 0600 8823 tst r24 972 0602 E1F3 breq .L71 973 0604 8DE4 ldi r24,lo8(77) 974 0606 90E0 ldi r25,hi8(77) 975 0608 9F93 push r25 976 060a 8F93 push r24 977 060c 80E0 ldi r24,lo8(Mixer) 978 060e 90E0 ldi r25,hi8(Mixer) 979 0610 9F93 push r25 980 0612 8F93 push r24 981 0614 81E0 ldi r24,lo8(1) 982 0616 8F93 push r24 983 0618 8F93 push r24 984 061a 8EE4 ldi r24,lo8(78) 985 061c 8F93 push r24 986 061e 0E94 0000 call SendOutData 987 0622 8DB7 in r24,__SP_L__ 988 0624 9EB7 in r25,__SP_H__ 989 0626 0796 adiw r24,7 990 0628 8DBF out __SP_L__,r24 991 062a F1C1 rjmp .L119 992 .L74: 993 062c A091 0000 lds r26,pRxData 994 0630 B091 0000 lds r27,(pRxData)+1 995 0634 1C91 ld r17,X 996 0636 1130 cpi r17,lo8(1) 997 0638 81F4 brne .L75 998 063a 8DE4 ldi r24,lo8(77) 999 063c E0E0 ldi r30,lo8(Mixer) 1000 063e F0E0 ldi r31,hi8(Mixer) 1001 0640 0D90 ld __tmp_reg__,X+ 1002 0642 0192 st Z+,__tmp_reg__ 1003 0644 8A95 dec r24 1004 0646 E1F7 brne .-8 1005 0648 0E94 0000 call MixerTable_WriteToEEProm 1006 064c 1983 std Y+1,r17 1007 064e 8091 0000 lds r24,VersionInfo+6 1008 0652 8F7E andi r24,lo8(-17) 1009 0654 8093 0000 sts VersionInfo+6,r24 1010 0658 01C0 rjmp .L77 1011 .L75: 1012 065a 1982 std Y+1,__zero_reg__ 1013 .L77: 1014 065c 8091 0000 lds r24,UebertragungAbgeschlossen 1015 0660 8823 tst r24 1016 0662 E1F3 breq .L77 1017 0664 81E0 ldi r24,lo8(1) 1018 0666 90E0 ldi r25,hi8(1) 1019 0668 9F93 push r25 1020 066a 8F93 push r24 1021 066c CE01 movw r24,r28 1022 066e 0196 adiw r24,1 1023 0670 9F93 push r25 1024 0672 8F93 push r24 1025 0674 81E0 ldi r24,lo8(1) 1026 0676 8F93 push r24 1027 0678 8F93 push r24 1028 067a 8DE4 ldi r24,lo8(77) 1029 067c 8F93 push r24 1030 067e 0E94 0000 call SendOutData 1031 0682 ADB7 in r26,__SP_L__ 1032 0684 BEB7 in r27,__SP_H__ 1033 0686 1796 adiw r26,7 1034 0688 ADBF out __SP_L__,r26 1035 068a C1C1 rjmp .L119 1036 .L80: 1037 068c 81E0 ldi r24,lo8(1) 1038 068e 8093 0000 sts GetPPMChannelAnforderung,r24 1039 .L148: 1040 0692 8FEF ldi r24,lo8(-1) 1041 0694 8093 0000 sts PcZugriff,r24 1042 0698 BAC1 rjmp .L119 1043 .L81: 1044 069a E091 0000 lds r30,pRxData 1045 069e F091 0000 lds r31,(pRxData)+1 1046 06a2 8081 ld r24,Z 1047 06a4 8F3F cpi r24,lo8(-1) 1048 06a6 39F4 brne .L82 1049 06a8 0E94 0000 call GetActiveParamSet 1050 06ac E091 0000 lds r30,pRxData 1051 06b0 F091 0000 lds r31,(pRxData)+1 1052 06b4 8083 st Z,r24 1053 .L82: 1054 06b6 E091 0000 lds r30,pRxData 1055 06ba F091 0000 lds r31,(pRxData)+1 1056 06be 8081 ld r24,Z 1057 06c0 8823 tst r24 1058 06c2 11F4 brne .L83 1059 06c4 81E0 ldi r24,lo8(1) 1060 06c6 03C0 rjmp .L146 1061 .L83: 1062 06c8 8630 cpi r24,lo8(6) 1063 06ca 10F0 brlo .L84 1064 06cc 85E0 ldi r24,lo8(5) 1065 .L146: 1066 06ce 8083 st Z,r24 1067 .L84: 1068 06d0 E091 0000 lds r30,pRxData 1069 06d4 F091 0000 lds r31,(pRxData)+1 1070 06d8 8081 ld r24,Z 1071 06da 0E94 0000 call ParamSet_ReadFromEEProm 1072 06de E091 0000 lds r30,pRxData 1073 06e2 F091 0000 lds r31,(pRxData)+1 1074 06e6 8081 ld r24,Z 1075 06e8 8983 std Y+1,r24 1076 .L86: 1077 06ea 8091 0000 lds r24,UebertragungAbgeschlossen 1078 06ee 8823 tst r24 1079 06f0 E1F3 breq .L86 1080 06f2 80E7 ldi r24,lo8(112) 1081 06f4 90E0 ldi r25,hi8(112) 1082 06f6 9F93 push r25 1083 06f8 8F93 push r24 1084 06fa 80E0 ldi r24,lo8(EE_Parameter) 1085 06fc 90E0 ldi r25,hi8(EE_Parameter) 1086 06fe 9F93 push r25 1087 0700 8F93 push r24 1088 0702 81E0 ldi r24,lo8(1) 1089 0704 90E0 ldi r25,hi8(1) 1090 0706 9F93 push r25 1091 0708 8F93 push r24 1092 070a CE01 movw r24,r28 1093 070c 0196 adiw r24,1 1094 070e 9F93 push r25 1095 0710 8F93 push r24 1096 0712 82E0 ldi r24,lo8(2) 1097 0714 8F93 push r24 1098 0716 81E0 ldi r24,lo8(1) 1099 0718 8F93 push r24 1100 071a 81E5 ldi r24,lo8(81) 1101 071c 71C1 rjmp .L151 1102 .L89: 1103 071e 2091 0000 lds r18,pRxData 1104 0722 3091 0000 lds r19,(pRxData)+1 1105 0726 D901 movw r26,r18 1106 0728 8C91 ld r24,X 1107 072a 8150 subi r24,lo8(-(-1)) 1108 072c 8530 cpi r24,lo8(5) 1109 072e 08F0 brlo .+2 1110 0730 40C0 rjmp .L90 1111 0732 F901 movw r30,r18 1112 0734 8181 ldd r24,Z+1 1113 0736 8435 cpi r24,lo8(84) 1114 0738 E1F5 brne .L90 1115 073a 2F5F subi r18,lo8(-(1)) 1116 073c 3F4F sbci r19,hi8(-(1)) 1117 073e 80E7 ldi r24,lo8(112) 1118 0740 E0E0 ldi r30,lo8(EE_Parameter) 1119 0742 F0E0 ldi r31,hi8(EE_Parameter) 1120 0744 D901 movw r26,r18 1121 0746 0D90 ld __tmp_reg__,X+ 1122 0748 0192 st Z+,__tmp_reg__ 1123 074a 8A95 dec r24 1124 074c E1F7 brne .-8 1125 074e F901 movw r30,r18 1126 0750 8291 ld r24,-Z 1127 0752 0E94 0000 call ParamSet_WriteToEEProm 1128 0756 8091 0000 lds r24,EE_Parameter+63 1129 075a 9927 clr r25 1130 075c AA27 clr r26 1131 075e BB27 clr r27 1132 0760 BC01 movw r22,r24 1133 0762 CD01 movw r24,r26 1134 0764 24EC ldi r18,lo8(2500) 1135 0766 39E0 ldi r19,hi8(2500) 1136 0768 40E0 ldi r20,hlo8(2500) 1137 076a 50E0 ldi r21,hhi8(2500) 1138 076c 0E94 0000 call __mulsi3 1139 0770 DC01 movw r26,r24 1140 0772 CB01 movw r24,r22 1141 0774 8093 0000 sts Umschlag180Nick,r24 1142 0778 9093 0000 sts (Umschlag180Nick)+1,r25 1143 077c A093 0000 sts (Umschlag180Nick)+2,r26 1144 0780 B093 0000 sts (Umschlag180Nick)+3,r27 1145 0784 8091 0000 lds r24,EE_Parameter+64 1146 0788 9927 clr r25 1147 078a AA27 clr r26 1148 078c BB27 clr r27 1149 078e BC01 movw r22,r24 1150 0790 CD01 movw r24,r26 1151 0792 0E94 0000 call __mulsi3 1152 0796 DC01 movw r26,r24 1153 0798 CB01 movw r24,r22 1154 079a 8093 0000 sts Umschlag180Roll,r24 1155 079e 9093 0000 sts (Umschlag180Roll)+1,r25 1156 07a2 A093 0000 sts (Umschlag180Roll)+2,r26 1157 07a6 B093 0000 sts (Umschlag180Roll)+3,r27 1158 07aa 0E94 0000 call GetActiveParamSet 1159 07ae 8983 std Y+1,r24 1160 07b0 01C0 rjmp .L92 1161 .L90: 1162 07b2 1982 std Y+1,__zero_reg__ 1163 .L92: 1164 07b4 8091 0000 lds r24,UebertragungAbgeschlossen 1165 07b8 8823 tst r24 1166 07ba E1F3 breq .L92 1167 07bc 81E0 ldi r24,lo8(1) 1168 07be 90E0 ldi r25,hi8(1) 1169 07c0 9F93 push r25 1170 07c2 8F93 push r24 1171 07c4 CE01 movw r24,r28 1172 07c6 0196 adiw r24,1 1173 07c8 9F93 push r25 1174 07ca 8F93 push r24 1175 07cc 81E0 ldi r24,lo8(1) 1176 07ce 8F93 push r24 1177 07d0 8F93 push r24 1178 07d2 83E5 ldi r24,lo8(83) 1179 07d4 8F93 push r24 1180 07d6 0E94 0000 call SendOutData 1181 07da 8DB7 in r24,__SP_L__ 1182 07dc 9EB7 in r25,__SP_H__ 1183 07de 0796 adiw r24,7 1184 07e0 8DBF out __SP_L__,r24 1185 07e2 26C0 rjmp .L152 1186 .L96: 1187 07e4 E091 0000 lds r30,pRxData 1188 07e8 F091 0000 lds r31,(pRxData)+1 1189 07ec E081 ld r30,Z 1190 07ee 8E2F mov r24,r30 1191 07f0 8150 subi r24,lo8(-(-1)) 1192 07f2 8530 cpi r24,lo8(5) 1193 07f4 18F4 brsh .L97 1194 07f6 8E2F mov r24,r30 1195 07f8 0E94 0000 call ParamSet_ReadFromEEProm 1196 .L97: 1197 07fc 0E94 0000 call GetActiveParamSet 1198 0800 8983 std Y+1,r24 1199 .L98: 1200 0802 8091 0000 lds r24,UebertragungAbgeschlossen 1201 0806 8823 tst r24 1202 0808 E1F3 breq .L98 1203 080a 81E0 ldi r24,lo8(1) 1204 080c 90E0 ldi r25,hi8(1) 1205 080e 9F93 push r25 1206 0810 8F93 push r24 1207 0812 CE01 movw r24,r28 1208 0814 0196 adiw r24,1 1209 0816 9F93 push r25 1210 0818 8F93 push r24 1211 081a 81E0 ldi r24,lo8(1) 1212 081c 8F93 push r24 1213 081e 8F93 push r24 1214 0820 86E4 ldi r24,lo8(70) 1215 0822 8F93 push r24 1216 0824 0E94 0000 call SendOutData 1217 0828 ADB7 in r26,__SP_L__ 1218 082a BEB7 in r27,__SP_H__ 1219 082c 1796 adiw r26,7 1220 082e ADBF out __SP_L__,r26 1221 .L152: 1222 0830 8091 0000 lds r24,MotorenEin 1223 0834 8823 tst r24 1224 0836 29F4 brne .L101 1225 0838 6EE6 ldi r22,lo8(110) 1226 083a 70E0 ldi r23,hi8(110) 1227 083c 8981 ldd r24,Y+1 1228 083e 0E94 0000 call Piep 1229 .L101: 1230 0842 80E0 ldi r24,lo8(0) 1231 0844 0E94 0000 call LipoDetection 1232 0848 8091 0000 lds r24,EE_Parameter+39 1233 084c 0E94 0000 call LIBFC_ReceiverInit 1234 0850 DEC0 rjmp .L119 1235 .L102: 1236 0852 E091 0000 lds r30,pRxData 1237 0856 F091 0000 lds r31,(pRxData)+1 1238 085a 8081 ld r24,Z 1239 085c 9927 clr r25 1240 085e 87FD sbrc r24,7 1241 0860 9095 com r25 1242 0862 9093 0000 sts (PPM_in+26)+1,r25 1243 0866 8093 0000 sts PPM_in+26,r24 1244 086a 8181 ldd r24,Z+1 1245 086c 9927 clr r25 1246 086e 87FD sbrc r24,7 1247 0870 9095 com r25 1248 0872 9093 0000 sts (PPM_in+28)+1,r25 1249 0876 8093 0000 sts PPM_in+28,r24 1250 087a 8281 ldd r24,Z+2 1251 087c 9927 clr r25 1252 087e 87FD sbrc r24,7 1253 0880 9095 com r25 1254 0882 9093 0000 sts (PPM_in+30)+1,r25 1255 0886 8093 0000 sts PPM_in+30,r24 1256 088a 8381 ldd r24,Z+3 1257 088c 9927 clr r25 1258 088e 87FD sbrc r24,7 1259 0890 9095 com r25 1260 0892 9093 0000 sts (PPM_in+32)+1,r25 1261 0896 8093 0000 sts PPM_in+32,r24 1262 089a 8481 ldd r24,Z+4 1263 089c 9927 clr r25 1264 089e 87FD sbrc r24,7 1265 08a0 9095 com r25 1266 08a2 9093 0000 sts (PPM_in+34)+1,r25 1267 08a6 8093 0000 sts PPM_in+34,r24 1268 08aa 8581 ldd r24,Z+5 1269 08ac 9927 clr r25 1270 08ae 87FD sbrc r24,7 1271 08b0 9095 com r25 1272 08b2 9093 0000 sts (PPM_in+36)+1,r25 1273 08b6 8093 0000 sts PPM_in+36,r24 1274 08ba 8681 ldd r24,Z+6 1275 08bc 9927 clr r25 1276 08be 87FD sbrc r24,7 1277 08c0 9095 com r25 1278 08c2 9093 0000 sts (PPM_in+38)+1,r25 1279 08c6 8093 0000 sts PPM_in+38,r24 1280 08ca 8781 ldd r24,Z+7 1281 08cc 9927 clr r25 1282 08ce 87FD sbrc r24,7 1283 08d0 9095 com r25 1284 08d2 9093 0000 sts (PPM_in+40)+1,r25 1285 08d6 8093 0000 sts PPM_in+40,r24 1286 08da 8085 ldd r24,Z+8 1287 08dc 9927 clr r25 1288 08de 87FD sbrc r24,7 1289 08e0 9095 com r25 1290 08e2 9093 0000 sts (PPM_in+42)+1,r25 1291 08e6 8093 0000 sts PPM_in+42,r24 1292 08ea 8185 ldd r24,Z+9 1293 08ec 9927 clr r25 1294 08ee 87FD sbrc r24,7 1295 08f0 9095 com r25 1296 08f2 9093 0000 sts (PPM_in+44)+1,r25 1297 08f6 8093 0000 sts PPM_in+44,r24 1298 08fa 8285 ldd r24,Z+10 1299 08fc 9927 clr r25 1300 08fe 87FD sbrc r24,7 1301 0900 9095 com r25 1302 0902 9093 0000 sts (PPM_in+46)+1,r25 1303 0906 8093 0000 sts PPM_in+46,r24 1304 090a 8385 ldd r24,Z+11 1305 090c 9927 clr r25 1306 090e 87FD sbrc r24,7 1307 0910 9095 com r25 1308 0912 9093 0000 sts (PPM_in+48)+1,r25 1309 0916 8093 0000 sts PPM_in+48,r24 1310 091a 79C0 rjmp .L119 1311 .L103: 1312 091c E091 0000 lds r30,pRxData 1313 0920 F091 0000 lds r31,(pRxData)+1 1314 0924 8081 ld r24,Z 1315 0926 0E94 0000 call I2C_ReadBLConfig 1316 092a 8A83 std Y+2,r24 1317 092c 8823 tst r24 1318 092e 19F4 brne .L104 1319 0930 81E0 ldi r24,lo8(1) 1320 0932 8983 std Y+1,r24 1321 0934 01C0 rjmp .L106 1322 .L104: 1323 0936 1982 std Y+1,__zero_reg__ 1324 .L106: 1325 0938 8091 0000 lds r24,UebertragungAbgeschlossen 1326 093c 8823 tst r24 1327 093e E1F3 breq .L106 1328 0940 88E0 ldi r24,lo8(8) 1329 0942 90E0 ldi r25,hi8(8) 1330 0944 9F93 push r25 1331 0946 8F93 push r24 1332 0948 80E0 ldi r24,lo8(BLConfig) 1333 094a 90E0 ldi r25,hi8(BLConfig) 1334 094c 9F93 push r25 1335 094e 8F93 push r24 1336 0950 21E0 ldi r18,lo8(1) 1337 0952 30E0 ldi r19,hi8(1) 1338 0954 3F93 push r19 1339 0956 2F93 push r18 1340 0958 8091 0000 lds r24,pRxData 1341 095c 9091 0000 lds r25,(pRxData)+1 1342 0960 9F93 push r25 1343 0962 8F93 push r24 1344 0964 3F93 push r19 1345 0966 2F93 push r18 1346 0968 CE01 movw r24,r28 1347 096a 0296 adiw r24,2 1348 096c 9F93 push r25 1349 096e 8F93 push r24 1350 0970 3F93 push r19 1351 0972 2F93 push r18 1352 0974 CE01 movw r24,r28 1353 0976 820F add r24,r18 1354 0978 931F adc r25,r19 1355 097a 9F93 push r25 1356 097c 8F93 push r24 1357 097e 84E0 ldi r24,lo8(4) 1358 0980 8F93 push r24 1359 0982 81E0 ldi r24,lo8(1) 1360 0984 8F93 push r24 1361 0986 85E5 ldi r24,lo8(85) 1362 0988 8F93 push r24 1363 098a 0E94 0000 call SendOutData 1364 098e EDB7 in r30,__SP_L__ 1365 0990 FEB7 in r31,__SP_H__ 1366 0992 7396 adiw r30,19 1367 0994 3BC0 rjmp .L147 1368 .L109: 1369 0996 8091 0000 lds r24,RxDataLen 1370 099a 8930 cpi r24,lo8(9) 1371 099c C0F1 brlo .L119 1372 099e 2091 0000 lds r18,pRxData 1373 09a2 3091 0000 lds r19,(pRxData)+1 1374 09a6 2F5F subi r18,lo8(-(1)) 1375 09a8 3F4F sbci r19,hi8(-(1)) 1376 09aa 88E0 ldi r24,lo8(8) 1377 09ac A0E0 ldi r26,lo8(BLConfig) 1378 09ae B0E0 ldi r27,hi8(BLConfig) 1379 09b0 F901 movw r30,r18 1380 09b2 0190 ld __tmp_reg__,Z+ 1381 09b4 0D92 st X+,__tmp_reg__ 1382 09b6 8A95 dec r24 1383 09b8 E1F7 brne .-8 1384 09ba D901 movw r26,r18 1385 09bc 8E91 ld r24,-X 1386 09be 0E94 0000 call I2C_WriteBLConfig 1387 09c2 8A83 std Y+2,r24 1388 09c4 8823 tst r24 1389 09c6 19F4 brne .L111 1390 09c8 81E0 ldi r24,lo8(1) 1391 09ca 8983 std Y+1,r24 1392 09cc 01C0 rjmp .L113 1393 .L111: 1394 09ce 1982 std Y+1,__zero_reg__ 1395 .L113: 1396 09d0 8091 0000 lds r24,UebertragungAbgeschlossen 1397 09d4 8823 tst r24 1398 09d6 E1F3 breq .L113 1399 09d8 21E0 ldi r18,lo8(1) 1400 09da 30E0 ldi r19,hi8(1) 1401 09dc 3F93 push r19 1402 09de 2F93 push r18 1403 09e0 CE01 movw r24,r28 1404 09e2 0296 adiw r24,2 1405 09e4 9F93 push r25 1406 09e6 8F93 push r24 1407 09e8 3F93 push r19 1408 09ea 2F93 push r18 1409 09ec CE01 movw r24,r28 1410 09ee 820F add r24,r18 1411 09f0 931F adc r25,r19 1412 09f2 9F93 push r25 1413 09f4 8F93 push r24 1414 09f6 82E0 ldi r24,lo8(2) 1415 09f8 8F93 push r24 1416 09fa 81E0 ldi r24,lo8(1) 1417 09fc 8F93 push r24 1418 09fe 87E5 ldi r24,lo8(87) 1419 .L151: 1420 0a00 8F93 push r24 1421 0a02 0E94 0000 call SendOutData 1422 0a06 EDB7 in r30,__SP_L__ 1423 0a08 FEB7 in r31,__SP_H__ 1424 0a0a 3B96 adiw r30,11 1425 .L147: 1426 0a0c EDBF out __SP_L__,r30 1427 .L119: 1428 0a0e 8091 0000 lds r24,RxdBuffer+2 1429 0a12 9927 clr r25 1430 0a14 8436 cpi r24,100 1431 0a16 9105 cpc r25,__zero_reg__ 1432 0a18 09F4 brne .+2 1433 0a1a CDC0 rjmp .L134 1434 0a1c 8536 cpi r24,101 1435 0a1e 9105 cpc r25,__zero_reg__ 1436 0a20 ACF4 brge .L143 1437 0a22 8136 cpi r24,97 1438 0a24 9105 cpc r25,__zero_reg__ 1439 0a26 09F4 brne .+2 1440 0a28 81C0 rjmp .L128 1441 0a2a 8236 cpi r24,98 1442 0a2c 9105 cpc r25,__zero_reg__ 1443 0a2e 2CF4 brge .L144 1444 0a30 8B34 cpi r24,75 1445 0a32 9105 cpc r25,__zero_reg__ 1446 0a34 09F4 brne .+2 1447 0a36 5DC0 rjmp .L127 1448 0a38 21C1 rjmp .L63 1449 .L144: 1450 0a3a 8236 cpi r24,98 1451 0a3c 9105 cpc r25,__zero_reg__ 1452 0a3e 09F4 brne .+2 1453 0a40 82C0 rjmp .L130 1454 0a42 8336 cpi r24,99 1455 0a44 9105 cpc r25,__zero_reg__ 1456 0a46 09F4 brne .+2 1457 0a48 91C0 rjmp .L131 1458 0a4a 18C1 rjmp .L63 1459 .L143: 1460 0a4c 8C36 cpi r24,108 1461 0a4e 9105 cpc r25,__zero_reg__ 1462 0a50 09F4 brne .+2 1463 0a52 FFC0 rjmp .L139 1464 0a54 8D36 cpi r24,109 1465 0a56 9105 cpc r25,__zero_reg__ 1466 0a58 4CF4 brge .L145 1467 0a5a 8736 cpi r24,103 1468 0a5c 9105 cpc r25,__zero_reg__ 1469 0a5e 09F4 brne .+2 1470 0a60 0AC1 rjmp .L141 1471 0a62 8836 cpi r24,104 1472 0a64 9105 cpc r25,__zero_reg__ 1473 0a66 09F4 brne .+2 1474 0a68 C4C0 rjmp .L136 1475 0a6a 08C1 rjmp .L63 1476 .L145: 1477 0a6c 8437 cpi r24,116 1478 0a6e 9105 cpc r25,__zero_reg__ 1479 0a70 29F0 breq .L121 1480 0a72 8637 cpi r24,118 1481 0a74 9105 cpc r25,__zero_reg__ 1482 0a76 09F4 brne .+2 1483 0a78 FAC0 rjmp .L140 1484 0a7a 00C1 rjmp .L63 1485 .L121: 1486 0a7c 8091 0000 lds r24,AnzahlEmpfangsBytes 1487 0a80 A091 0000 lds r26,pRxData 1488 0a84 B091 0000 lds r27,(pRxData)+1 1489 0a88 8031 cpi r24,lo8(16) 1490 0a8a 40F0 brlo .L122 1491 0a8c 80E1 ldi r24,lo8(16) 1492 0a8e E0E0 ldi r30,lo8(MotorTest) 1493 0a90 F0E0 ldi r31,hi8(MotorTest) 1494 0a92 0D90 ld __tmp_reg__,X+ 1495 0a94 0192 st Z+,__tmp_reg__ 1496 0a96 8A95 dec r24 1497 0a98 E1F7 brne .-8 1498 0a9a 0DC0 rjmp .L124 1499 .L122: 1500 0a9c 8D91 ld r24,X+ 1501 0a9e 9D91 ld r25,X+ 1502 0aa0 0D90 ld __tmp_reg__,X+ 1503 0aa2 BC91 ld r27,X 1504 0aa4 A02D mov r26,__tmp_reg__ 1505 0aa6 8093 0000 sts MotorTest,r24 1506 0aaa 9093 0000 sts (MotorTest)+1,r25 1507 0aae A093 0000 sts (MotorTest)+2,r26 1508 0ab2 B093 0000 sts (MotorTest)+3,r27 1509 .L124: 1510 0ab6 8091 0000 lds r24,UebertragungAbgeschlossen 1511 0aba 8823 tst r24 1512 0abc E1F3 breq .L124 1513 0abe 1F92 push __zero_reg__ 1514 0ac0 8091 0000 lds r24,MeineSlaveAdresse 1515 0ac4 8F93 push r24 1516 0ac6 84E5 ldi r24,lo8(84) 1517 0ac8 8F93 push r24 1518 0aca 0E94 0000 call SendOutData 1519 0ace 8AEF ldi r24,lo8(-6) 1520 0ad0 8093 0000 sts PC_MotortestActive,r24 1521 0ad4 8FEF ldi r24,lo8(-1) 1522 0ad6 8093 0000 sts PcZugriff,r24 1523 0ada 80EA ldi r24,lo8(4000) 1524 0adc 9FE0 ldi r25,hi8(4000) 1525 0ade 0E94 0000 call SetDelay 1526 0ae2 9093 0000 sts (AboTimeOut)+1,r25 1527 0ae6 8093 0000 sts AboTimeOut,r24 1528 0aea 0F90 pop __tmp_reg__ 1529 0aec 0F90 pop __tmp_reg__ 1530 0aee 0F90 pop __tmp_reg__ 1531 0af0 C5C0 rjmp .L63 1532 .L127: 1533 0af2 E091 0000 lds r30,pRxData 1534 0af6 F091 0000 lds r31,(pRxData)+1 1535 0afa 8081 ld r24,Z 1536 0afc 9181 ldd r25,Z+1 1537 0afe 9093 0000 sts (KompassValue)+1,r25 1538 0b02 8093 0000 sts KompassValue,r24 1539 0b06 2091 0000 lds r18,KompassStartwert 1540 0b0a 3091 0000 lds r19,(KompassStartwert)+1 1541 0b0e 821B sub r24,r18 1542 0b10 930B sbc r25,r19 1543 0b12 845E subi r24,lo8(-(540)) 1544 0b14 9D4F sbci r25,hi8(-(540)) 1545 0b16 68E6 ldi r22,lo8(360) 1546 0b18 71E0 ldi r23,hi8(360) 1547 0b1a 0E94 0000 call __divmodhi4 1548 0b1e 845B subi r24,lo8(-(-180)) 1549 0b20 9040 sbci r25,hi8(-(-180)) 1550 0b22 9093 0000 sts (KompassRichtung)+1,r25 1551 0b26 8093 0000 sts KompassRichtung,r24 1552 0b2a A8C0 rjmp .L63 1553 .L128: 1554 0b2c E091 0000 lds r30,pRxData 1555 0b30 F091 0000 lds r31,(pRxData)+1 1556 0b34 8081 ld r24,Z 1557 0b36 8093 0000 sts DebugTextAnforderung,r24 1558 0b3a 8032 cpi r24,lo8(32) 1559 0b3c 98F0 brlo .L149 1560 0b3e 8FE1 ldi r24,lo8(31) 1561 0b40 8093 0000 sts DebugTextAnforderung,r24 1562 0b44 0FC0 rjmp .L149 1563 .L130: 1564 0b46 A091 0000 lds r26,pRxData 1565 0b4a B091 0000 lds r27,(pRxData)+1 1566 0b4e 8BE0 ldi r24,lo8(11) 1567 0b50 E0E0 ldi r30,lo8(ExternControl) 1568 0b52 F0E0 ldi r31,hi8(ExternControl) 1569 0b54 0D90 ld __tmp_reg__,X+ 1570 0b56 0192 st Z+,__tmp_reg__ 1571 0b58 8A95 dec r24 1572 0b5a E1F7 brne .-8 1573 0b5c 8091 0000 lds r24,ExternControl+9 1574 0b60 8093 0000 sts ConfirmFrame,r24 1575 .L149: 1576 0b64 8FEF ldi r24,lo8(-1) 1577 0b66 8093 0000 sts PcZugriff,r24 1578 0b6a 88C0 rjmp .L63 1579 .L131: 1580 0b6c 8091 0000 lds r24,Intervall3D 1581 0b70 9091 0000 lds r25,(Intervall3D)+1 1582 0b74 892B or r24,r25 1583 0b76 89F4 brne .L132 1584 0b78 E091 0000 lds r30,pRxData 1585 0b7c F091 0000 lds r31,(pRxData)+1 1586 0b80 E081 ld r30,Z 1587 0b82 EE23 tst r30 1588 0b84 51F0 breq .L132 1589 0b86 8AE0 ldi r24,lo8(10) 1590 0b88 E89F mul r30,r24 1591 0b8a C001 movw r24,r0 1592 0b8c 1124 clr r1 1593 0b8e 0E94 0000 call SetDelay 1594 0b92 9093 0000 sts (Timer3D)+1,r25 1595 0b96 8093 0000 sts Timer3D,r24 1596 .L132: 1597 0b9a E091 0000 lds r30,pRxData 1598 0b9e F091 0000 lds r31,(pRxData)+1 1599 0ba2 9081 ld r25,Z 1600 0ba4 8AE0 ldi r24,lo8(10) 1601 0ba6 989F mul r25,r24 1602 0ba8 C001 movw r24,r0 1603 0baa 1124 clr r1 1604 0bac 9093 0000 sts (Intervall3D)+1,r25 1605 0bb0 8093 0000 sts Intervall3D,r24 1606 0bb4 15C0 rjmp .L135 1607 .L134: 1608 0bb6 8FEF ldi r24,lo8(-1) 1609 0bb8 8093 0000 sts PcZugriff,r24 1610 0bbc E091 0000 lds r30,pRxData 1611 0bc0 F091 0000 lds r31,(pRxData)+1 1612 0bc4 9081 ld r25,Z 1613 0bc6 8AE0 ldi r24,lo8(10) 1614 0bc8 989F mul r25,r24 1615 0bca C001 movw r24,r0 1616 0bcc 1124 clr r1 1617 0bce 9093 0000 sts (DebugDataIntervall)+1,r25 1618 0bd2 8093 0000 sts DebugDataIntervall,r24 1619 0bd6 892B or r24,r25 1620 0bd8 19F0 breq .L135 1621 0bda 81E0 ldi r24,lo8(1) 1622 0bdc 8093 0000 sts DebugDataAnforderung,r24 1623 .L135: 1624 0be0 80EA ldi r24,lo8(4000) 1625 0be2 9FE0 ldi r25,hi8(4000) 1626 0be4 0E94 0000 call SetDelay 1627 0be8 9093 0000 sts (AboTimeOut)+1,r25 1628 0bec 8093 0000 sts AboTimeOut,r24 1629 0bf0 45C0 rjmp .L63 1630 .L136: 1631 0bf2 8FEF ldi r24,lo8(-1) 1632 0bf4 8093 0000 sts PcZugriff,r24 1633 0bf8 E091 0000 lds r30,pRxData 1634 0bfc F091 0000 lds r31,(pRxData)+1 1635 0c00 9081 ld r25,Z 1636 0c02 97FD sbrc r25,7 1637 0c04 08C0 rjmp .L137 1638 0c06 82E0 ldi r24,lo8(2) 1639 0c08 8093 0000 sts DisplayLine,r24 1640 0c0c 1092 0000 sts (Display_Interval)+1,__zero_reg__ 1641 0c10 1092 0000 sts Display_Interval,__zero_reg__ 1642 0c14 1AC0 rjmp .L138 1643 .L137: 1644 0c16 9095 com r25 1645 0c18 8091 0000 lds r24,RemoteKeys 1646 0c1c 892B or r24,r25 1647 0c1e 8093 0000 sts RemoteKeys,r24 1648 0c22 9181 ldd r25,Z+1 1649 0c24 8AE0 ldi r24,lo8(10) 1650 0c26 989F mul r25,r24 1651 0c28 C001 movw r24,r0 1652 0c2a 1124 clr r1 1653 0c2c 9093 0000 sts (Display_Interval)+1,r25 1654 0c30 8093 0000 sts Display_Interval,r24 1655 0c34 84E0 ldi r24,lo8(4) 1656 0c36 8093 0000 sts DisplayLine,r24 1657 0c3a 80EA ldi r24,lo8(4000) 1658 0c3c 9FE0 ldi r25,hi8(4000) 1659 0c3e 0E94 0000 call SetDelay 1660 0c42 9093 0000 sts (AboTimeOut)+1,r25 1661 0c46 8093 0000 sts AboTimeOut,r24 1662 .L138: 1663 0c4a 81E0 ldi r24,lo8(1) 1664 0c4c 8093 0000 sts DebugDisplayAnforderung,r24 1665 0c50 15C0 rjmp .L63 1666 .L139: 1667 0c52 8FEF ldi r24,lo8(-1) 1668 0c54 8093 0000 sts PcZugriff,r24 1669 0c58 E091 0000 lds r30,pRxData 1670 0c5c F091 0000 lds r31,(pRxData)+1 1671 0c60 8081 ld r24,Z 1672 0c62 8093 0000 sts MenuePunkt,r24 1673 0c66 81E0 ldi r24,lo8(1) 1674 0c68 8093 0000 sts DebugDisplayAnforderung1,r24 1675 0c6c 07C0 rjmp .L63 1676 .L140: 1677 0c6e 81E0 ldi r24,lo8(1) 1678 0c70 8093 0000 sts GetVersionAnforderung,r24 1679 0c74 03C0 rjmp .L63 1680 .L141: 1681 0c76 81E0 ldi r24,lo8(1) 1682 0c78 8093 0000 sts GetExternalControl,r24 1683 .L63: 1684 0c7c 1092 0000 sts NeuerDatensatzEmpfangen,__zero_reg__ 1685 0c80 1092 0000 sts (pRxData)+1,__zero_reg__ 1686 0c84 1092 0000 sts pRxData,__zero_reg__ 1687 0c88 1092 0000 sts RxDataLen,__zero_reg__ 1688 .L61: 1689 /* epilogue: frame size=2 */ 1690 0c8c E3E0 ldi r30,3 1691 0c8e CE5F subi r28,-2 1692 0c90 0C94 0000 jmp __epilogue_restores__+30 1693 /* epilogue end (size=4) */ 1694 /* function BearbeiteRxDaten size 982 (972) */ 1696 .global uart_putchar 1698 uart_putchar: 1699 /* prologue: frame size=0 */ 1700 /* prologue end (size=0) */ 1701 0c94 982F mov r25,r24 1702 .L154: 1703 0c96 8091 C000 lds r24,192 1704 0c9a 85FF sbrs r24,5 1705 0c9c FCCF rjmp .L154 1706 0c9e 9093 C600 sts 198,r25 1707 /* epilogue: frame size=0 */ 1708 0ca2 0895 ret 1709 /* epilogue end (size=1) */ 1710 /* function uart_putchar size 8 (7) */ 1712 .global UART_Init 1714 UART_Init: 1715 /* prologue: frame size=0 */ 1716 0ca4 0F93 push r16 1717 0ca6 1F93 push r17 1718 /* prologue end (size=2) */ 1719 0ca8 88E1 ldi r24,lo8(24) 1720 0caa 8093 C100 sts 193,r24 1721 0cae 8091 C000 lds r24,192 1722 0cb2 8260 ori r24,lo8(2) 1723 0cb4 8093 C000 sts 192,r24 1724 0cb8 8091 C100 lds r24,193 1725 0cbc 8068 ori r24,lo8(-128) 1726 0cbe 8093 C100 sts 193,r24 1727 0cc2 8091 C100 lds r24,193 1728 0cc6 8064 ori r24,lo8(64) 1729 0cc8 8093 C100 sts 193,r24 1730 0ccc 00E0 ldi r16,lo8(0) 1731 0cce 10E0 ldi r17,hi8(0) 1732 0cd0 0093 C500 sts 197,r16 1733 0cd4 8AE2 ldi r24,lo8(42) 1734 0cd6 90E0 ldi r25,hi8(42) 1735 0cd8 8093 C400 sts 196,r24 1736 0cdc 8091 0000 lds r24,DebugDataIntervall 1737 0ce0 9091 0000 lds r25,(DebugDataIntervall)+1 1738 0ce4 0E94 0000 call SetDelay 1739 0ce8 9093 0000 sts (Debug_Timer)+1,r25 1740 0cec 8093 0000 sts Debug_Timer,r24 1741 0cf0 8CED ldi r24,lo8(220) 1742 0cf2 90E0 ldi r25,hi8(220) 1743 0cf4 0E94 0000 call SetDelay 1744 0cf8 9093 0000 sts (Kompass_Timer)+1,r25 1745 0cfc 8093 0000 sts Kompass_Timer,r24 1746 0d00 1092 0000 sts VersionInfo,__zero_reg__ 1747 0d04 80E5 ldi r24,lo8(80) 1748 0d06 8093 0000 sts VersionInfo+1,r24 1749 0d0a 83E0 ldi r24,lo8(3) 1750 0d0c 8093 0000 sts VersionInfo+4,r24 1751 0d10 8BE0 ldi r24,lo8(11) 1752 0d12 8093 0000 sts VersionInfo+2,r24 1753 0d16 1092 0000 sts VersionInfo+3,__zero_reg__ 1754 0d1a 1093 0000 sts (pRxData)+1,r17 1755 0d1e 0093 0000 sts pRxData,r16 1756 0d22 1092 0000 sts RxDataLen,__zero_reg__ 1757 /* epilogue: frame size=0 */ 1758 0d26 1F91 pop r17 1759 0d28 0F91 pop r16 1760 0d2a 0895 ret 1761 /* epilogue end (size=3) */ 1762 /* function UART_Init size 68 (63) */ 1764 .section .progmem.data 1767 __c.0: 1768 0200 2121 2120 .string "!!! INCOMPATIBLE !!!" 1768 494E 434F 1768 4D50 4154 1768 4942 4C45 1768 2021 2121 1769 .text 1770 .global DatenUebertragung 1772 DatenUebertragung: 1773 /* prologue: frame size=16 */ 1774 0d2c A0E1 ldi r26,lo8(16) 1775 0d2e B0E0 ldi r27,hi8(16) 1776 0d30 E0E0 ldi r30,pm_lo8(1f) 1777 0d32 F0E0 ldi r31,pm_hi8(1f) 1778 0d34 0C94 0000 jmp __prologue_saves__+24 1779 1: 1780 /* prologue end (size=6) */ 1781 0d38 8091 0000 lds r24,UebertragungAbgeschlossen 1782 0d3c 8823 tst r24 1783 0d3e 09F4 brne .+2 1784 0d40 C1C2 rjmp .L158 1785 0d42 8091 0000 lds r24,AboTimeOut 1786 0d46 9091 0000 lds r25,(AboTimeOut)+1 1787 0d4a 0E94 0000 call CheckDelay 1788 0d4e 8823 tst r24 1789 0d50 61F0 breq .L160 1790 0d52 1092 0000 sts (Display_Interval)+1,__zero_reg__ 1791 0d56 1092 0000 sts Display_Interval,__zero_reg__ 1792 0d5a 1092 0000 sts (DebugDataIntervall)+1,__zero_reg__ 1793 0d5e 1092 0000 sts DebugDataIntervall,__zero_reg__ 1794 0d62 1092 0000 sts (Intervall3D)+1,__zero_reg__ 1795 0d66 1092 0000 sts Intervall3D,__zero_reg__ 1796 .L160: 1797 0d6a 8091 0000 lds r24,Display_Interval 1798 0d6e 9091 0000 lds r25,(Display_Interval)+1 1799 0d72 892B or r24,r25 1800 0d74 41F0 breq .L163 1801 0d76 8091 0000 lds r24,Display_Timer 1802 0d7a 9091 0000 lds r25,(Display_Timer)+1 1803 0d7e 0E94 0000 call CheckDelay 1804 0d82 8823 tst r24 1805 0d84 29F4 brne .L162 1806 .L163: 1807 0d86 8091 0000 lds r24,DebugDisplayAnforderung 1808 0d8a 8823 tst r24 1809 0d8c 09F4 brne .+2 1810 0d8e 60C0 rjmp .L161 1811 .L162: 1812 0d90 8091 0000 lds r24,UebertragungAbgeschlossen 1813 0d94 8823 tst r24 1814 0d96 09F4 brne .+2 1815 0d98 5BC0 rjmp .L161 1816 0d9a 8091 0000 lds r24,DisplayLine 1817 0d9e 00E0 ldi r16,lo8(DisplayBuff) 1818 0da0 10E0 ldi r17,hi8(DisplayBuff) 1819 0da2 8430 cpi r24,lo8(4) 1820 0da4 A8F0 brlo .L164 1821 0da6 0E94 0000 call Menu 1822 0daa 80E5 ldi r24,lo8(80) 1823 0dac 90E0 ldi r25,hi8(80) 1824 0dae 9F93 push r25 1825 0db0 8F93 push r24 1826 0db2 1F93 push r17 1827 0db4 0F93 push r16 1828 0db6 81E0 ldi r24,lo8(1) 1829 0db8 8F93 push r24 1830 0dba 8F93 push r24 1831 0dbc 88E4 ldi r24,lo8(72) 1832 0dbe 8F93 push r24 1833 0dc0 0E94 0000 call SendOutData 1834 0dc4 2DB7 in r18,__SP_L__ 1835 0dc6 3EB7 in r19,__SP_H__ 1836 0dc8 295F subi r18,lo8(-(7)) 1837 0dca 3F4F sbci r19,hi8(-(7)) 1838 0dcc 2DBF out __SP_L__,r18 1839 0dce 34C0 rjmp .L165 1840 .L164: 1841 0dd0 1092 0000 sts DispPtr,__zero_reg__ 1842 0dd4 80E0 ldi r24,lo8(__c.0) 1843 0dd6 90E0 ldi r25,hi8(__c.0) 1844 0dd8 9F93 push r25 1845 0dda 8F93 push r24 1846 0ddc 80E0 ldi r24,lo8(pm(Menu_Putchar)) 1847 0dde 90E0 ldi r25,hi8(pm(Menu_Putchar)) 1848 0de0 9F93 push r25 1849 0de2 8F93 push r24 1850 0de4 E091 0000 lds r30,_printf_P 1851 0de8 F091 0000 lds r31,(_printf_P)+1 1852 0dec 0995 icall 1853 0dee 84E1 ldi r24,lo8(20) 1854 0df0 90E0 ldi r25,hi8(20) 1855 0df2 9F93 push r25 1856 0df4 8F93 push r24 1857 0df6 1F93 push r17 1858 0df8 0F93 push r16 1859 0dfa 81E0 ldi r24,lo8(1) 1860 0dfc 90E0 ldi r25,hi8(1) 1861 0dfe 9F93 push r25 1862 0e00 8F93 push r24 1863 0e02 80E0 ldi r24,lo8(DisplayLine) 1864 0e04 90E0 ldi r25,hi8(DisplayLine) 1865 0e06 9F93 push r25 1866 0e08 8F93 push r24 1867 0e0a 82E0 ldi r24,lo8(2) 1868 0e0c 8F93 push r24 1869 0e0e 81E0 ldi r24,lo8(1) 1870 0e10 8F93 push r24 1871 0e12 88E4 ldi r24,lo8(72) 1872 0e14 8F93 push r24 1873 0e16 0E94 0000 call SendOutData 1874 0e1a 8091 0000 lds r24,DisplayLine 1875 0e1e 982F mov r25,r24 1876 0e20 8F5F subi r24,lo8(-(1)) 1877 0e22 8093 0000 sts DisplayLine,r24 1878 0e26 2DB7 in r18,__SP_L__ 1879 0e28 3EB7 in r19,__SP_H__ 1880 0e2a 215F subi r18,lo8(-(15)) 1881 0e2c 3F4F sbci r19,hi8(-(15)) 1882 0e2e 2DBF out __SP_L__,r18 1883 0e30 9430 cpi r25,lo8(4) 1884 0e32 10F0 brlo .L165 1885 0e34 1092 0000 sts DisplayLine,__zero_reg__ 1886 .L165: 1887 0e38 8091 0000 lds r24,Display_Interval 1888 0e3c 9091 0000 lds r25,(Display_Interval)+1 1889 0e40 0E94 0000 call SetDelay 1890 0e44 9093 0000 sts (Display_Timer)+1,r25 1891 0e48 8093 0000 sts Display_Timer,r24 1892 0e4c 1092 0000 sts DebugDisplayAnforderung,__zero_reg__ 1893 .L161: 1894 0e50 8091 0000 lds r24,DebugDisplayAnforderung1 1895 0e54 8823 tst r24 1896 0e56 51F1 breq .L167 1897 0e58 8091 0000 lds r24,UebertragungAbgeschlossen 1898 0e5c 8823 tst r24 1899 0e5e 31F1 breq .L167 1900 0e60 0E94 0000 call Menu 1901 0e64 80E5 ldi r24,lo8(80) 1902 0e66 90E0 ldi r25,hi8(80) 1903 0e68 9F93 push r25 1904 0e6a 8F93 push r24 1905 0e6c 80E0 ldi r24,lo8(DisplayBuff) 1906 0e6e 90E0 ldi r25,hi8(DisplayBuff) 1907 0e70 9F93 push r25 1908 0e72 8F93 push r24 1909 0e74 21E0 ldi r18,lo8(1) 1910 0e76 30E0 ldi r19,hi8(1) 1911 0e78 3F93 push r19 1912 0e7a 2F93 push r18 1913 0e7c 80E0 ldi r24,lo8(MaxMenue) 1914 0e7e 90E0 ldi r25,hi8(MaxMenue) 1915 0e80 9F93 push r25 1916 0e82 8F93 push r24 1917 0e84 3F93 push r19 1918 0e86 2F93 push r18 1919 0e88 80E0 ldi r24,lo8(MenuePunkt) 1920 0e8a 90E0 ldi r25,hi8(MenuePunkt) 1921 0e8c 9F93 push r25 1922 0e8e 8F93 push r24 1923 0e90 83E0 ldi r24,lo8(3) 1924 0e92 8F93 push r24 1925 0e94 81E0 ldi r24,lo8(1) 1926 0e96 8F93 push r24 1927 0e98 8CE4 ldi r24,lo8(76) 1928 0e9a 8F93 push r24 1929 0e9c 0E94 0000 call SendOutData 1930 0ea0 1092 0000 sts DebugDisplayAnforderung1,__zero_reg__ 1931 0ea4 8DB7 in r24,__SP_L__ 1932 0ea6 9EB7 in r25,__SP_H__ 1933 0ea8 0F96 adiw r24,15 1934 0eaa 8DBF out __SP_L__,r24 1935 .L167: 1936 0eac 8091 0000 lds r24,GetVersionAnforderung 1937 0eb0 8823 tst r24 1938 0eb2 D1F0 breq .L168 1939 0eb4 8091 0000 lds r24,UebertragungAbgeschlossen 1940 0eb8 8823 tst r24 1941 0eba B1F0 breq .L168 1942 0ebc 8AE0 ldi r24,lo8(10) 1943 0ebe 90E0 ldi r25,hi8(10) 1944 0ec0 9F93 push r25 1945 0ec2 8F93 push r24 1946 0ec4 80E0 ldi r24,lo8(VersionInfo) 1947 0ec6 90E0 ldi r25,hi8(VersionInfo) 1948 0ec8 9F93 push r25 1949 0eca 8F93 push r24 1950 0ecc 81E0 ldi r24,lo8(1) 1951 0ece 8F93 push r24 1952 0ed0 8F93 push r24 1953 0ed2 86E5 ldi r24,lo8(86) 1954 0ed4 8F93 push r24 1955 0ed6 0E94 0000 call SendOutData 1956 0eda 1092 0000 sts GetVersionAnforderung,__zero_reg__ 1957 0ede 2DB7 in r18,__SP_L__ 1958 0ee0 3EB7 in r19,__SP_H__ 1959 0ee2 295F subi r18,lo8(-(7)) 1960 0ee4 3F4F sbci r19,hi8(-(7)) 1961 0ee6 2DBF out __SP_L__,r18 1962 .L168: 1963 0ee8 8091 0000 lds r24,GetExternalControl 1964 0eec 8823 tst r24 1965 0eee D9F0 breq .L169 1966 0ef0 8091 0000 lds r24,UebertragungAbgeschlossen 1967 0ef4 8823 tst r24 1968 0ef6 B9F0 breq .L169 1969 0ef8 8BE0 ldi r24,lo8(11) 1970 0efa 90E0 ldi r25,hi8(11) 1971 0efc 9F93 push r25 1972 0efe 8F93 push r24 1973 0f00 80E0 ldi r24,lo8(ExternControl) 1974 0f02 90E0 ldi r25,hi8(ExternControl) 1975 0f04 9F93 push r25 1976 0f06 8F93 push r24 1977 0f08 81E0 ldi r24,lo8(1) 1978 0f0a 8F93 push r24 1979 0f0c 8091 0000 lds r24,MeineSlaveAdresse 1980 0f10 8F93 push r24 1981 0f12 87E4 ldi r24,lo8(71) 1982 0f14 8F93 push r24 1983 0f16 0E94 0000 call SendOutData 1984 0f1a 1092 0000 sts GetExternalControl,__zero_reg__ 1985 0f1e 8DB7 in r24,__SP_L__ 1986 0f20 9EB7 in r25,__SP_H__ 1987 0f22 0796 adiw r24,7 1988 0f24 8DBF out __SP_L__,r24 1989 .L169: 1990 0f26 8091 0000 lds r24,Kompass_Timer 1991 0f2a 9091 0000 lds r25,(Kompass_Timer)+1 1992 0f2e 0E94 0000 call CheckDelay 1993 0f32 8823 tst r24 1994 0f34 09F4 brne .+2 1995 0f36 61C0 rjmp .L170 1996 0f38 8091 0000 lds r24,UebertragungAbgeschlossen 1997 0f3c 8823 tst r24 1998 0f3e 09F4 brne .+2 1999 0f40 5CC0 rjmp .L170 2000 0f42 8091 0000 lds r24,EE_Parameter+28 2001 0f46 9927 clr r25 2002 0f48 880F lsl r24 2003 0f4a 991F rol r25 2004 0f4c 880F lsl r24 2005 0f4e 991F rol r25 2006 0f50 7C01 movw r14,r24 2007 0f52 0027 clr r16 2008 0f54 F7FC sbrc r15,7 2009 0f56 0095 com r16 2010 0f58 102F mov r17,r16 2011 0f5a 8091 0000 lds r24,IntegralNick 2012 0f5e 9091 0000 lds r25,(IntegralNick)+1 2013 0f62 A091 0000 lds r26,(IntegralNick)+2 2014 0f66 B091 0000 lds r27,(IntegralNick)+3 2015 0f6a BC01 movw r22,r24 2016 0f6c CD01 movw r24,r26 2017 0f6e A801 movw r20,r16 2018 0f70 9701 movw r18,r14 2019 0f72 0E94 0000 call __divmodsi4 2020 0f76 3093 0000 sts (WinkelOut)+1,r19 2021 0f7a 2093 0000 sts WinkelOut,r18 2022 0f7e 8091 0000 lds r24,IntegralRoll 2023 0f82 9091 0000 lds r25,(IntegralRoll)+1 2024 0f86 A091 0000 lds r26,(IntegralRoll)+2 2025 0f8a B091 0000 lds r27,(IntegralRoll)+3 2026 0f8e BC01 movw r22,r24 2027 0f90 CD01 movw r24,r26 2028 0f92 A801 movw r20,r16 2029 0f94 9701 movw r18,r14 2030 0f96 0E94 0000 call __divmodsi4 2031 0f9a 3093 0000 sts (WinkelOut+2)+1,r19 2032 0f9e 2093 0000 sts WinkelOut+2,r18 2033 0fa2 8091 0000 lds r24,Parameter_UserParam1 2034 0fa6 8093 0000 sts WinkelOut+4,r24 2035 0faa 8091 0000 lds r24,Parameter_UserParam2 2036 0fae 8093 0000 sts WinkelOut+5,r24 2037 0fb2 88E0 ldi r24,lo8(8) 2038 0fb4 90E0 ldi r25,hi8(8) 2039 0fb6 9F93 push r25 2040 0fb8 8F93 push r24 2041 0fba 80E0 ldi r24,lo8(WinkelOut) 2042 0fbc 90E0 ldi r25,hi8(WinkelOut) 2043 0fbe 9F93 push r25 2044 0fc0 8F93 push r24 2045 0fc2 81E0 ldi r24,lo8(1) 2046 0fc4 8F93 push r24 2047 0fc6 83E0 ldi r24,lo8(3) 2048 0fc8 8F93 push r24 2049 0fca 8BE6 ldi r24,lo8(107) 2050 0fcc 8F93 push r24 2051 0fce 0E94 0000 call SendOutData 2052 0fd2 8091 0000 lds r24,WinkelOut+6 2053 0fd6 2DB7 in r18,__SP_L__ 2054 0fd8 3EB7 in r19,__SP_H__ 2055 0fda 295F subi r18,lo8(-(7)) 2056 0fdc 3F4F sbci r19,hi8(-(7)) 2057 0fde 2DBF out __SP_L__,r18 2058 0fe0 8530 cpi r24,lo8(5) 2059 0fe2 18F0 brlo .L171 2060 0fe4 86E0 ldi r24,lo8(6) 2061 0fe6 8093 0000 sts WinkelOut+6,r24 2062 .L171: 2063 0fea 83E6 ldi r24,lo8(99) 2064 0fec 90E0 ldi r25,hi8(99) 2065 0fee 0E94 0000 call SetDelay 2066 0ff2 9093 0000 sts (Kompass_Timer)+1,r25 2067 0ff6 8093 0000 sts Kompass_Timer,r24 2068 .L170: 2069 0ffa 8091 0000 lds r24,DebugDataIntervall 2070 0ffe 9091 0000 lds r25,(DebugDataIntervall)+1 2071 1002 892B or r24,r25 2072 1004 41F0 breq .L174 2073 1006 8091 0000 lds r24,Debug_Timer 2074 100a 9091 0000 lds r25,(Debug_Timer)+1 2075 100e 0E94 0000 call CheckDelay 2076 1012 8823 tst r24 2077 1014 21F4 brne .L173 2078 .L174: 2079 1016 8091 0000 lds r24,DebugDataAnforderung 2080 101a 8823 tst r24 2081 101c 39F1 breq .L172 2082 .L173: 2083 101e 8091 0000 lds r24,UebertragungAbgeschlossen 2084 1022 8823 tst r24 2085 1024 19F1 breq .L172 2086 1026 0E94 0000 call CopyDebugValues 2087 102a 82E4 ldi r24,lo8(66) 2088 102c 90E0 ldi r25,hi8(66) 2089 102e 9F93 push r25 2090 1030 8F93 push r24 2091 1032 80E0 ldi r24,lo8(DebugOut) 2092 1034 90E0 ldi r25,hi8(DebugOut) 2093 1036 9F93 push r25 2094 1038 8F93 push r24 2095 103a 81E0 ldi r24,lo8(1) 2096 103c 8F93 push r24 2097 103e 8F93 push r24 2098 1040 84E4 ldi r24,lo8(68) 2099 1042 8F93 push r24 2100 1044 0E94 0000 call SendOutData 2101 1048 1092 0000 sts DebugDataAnforderung,__zero_reg__ 2102 104c 8DB7 in r24,__SP_L__ 2103 104e 9EB7 in r25,__SP_H__ 2104 1050 0796 adiw r24,7 2105 1052 8DBF out __SP_L__,r24 2106 1054 8091 0000 lds r24,DebugDataIntervall 2107 1058 9091 0000 lds r25,(DebugDataIntervall)+1 2108 105c 0097 sbiw r24,0 2109 105e 31F0 breq .L172 2110 1060 0E94 0000 call SetDelay 2111 1064 9093 0000 sts (Debug_Timer)+1,r25 2112 1068 8093 0000 sts Debug_Timer,r24 2113 .L172: 2114 106c 8091 0000 lds r24,Intervall3D 2115 1070 9091 0000 lds r25,(Intervall3D)+1 2116 1074 892B or r24,r25 2117 1076 09F4 brne .+2 2118 1078 B8C0 rjmp .L176 2119 107a 8091 0000 lds r24,Timer3D 2120 107e 9091 0000 lds r25,(Timer3D)+1 2121 1082 0E94 0000 call CheckDelay 2122 1086 8823 tst r24 2123 1088 09F4 brne .+2 2124 108a AFC0 rjmp .L176 2125 108c 8091 0000 lds r24,UebertragungAbgeschlossen 2126 1090 8823 tst r24 2127 1092 09F4 brne .+2 2128 1094 AAC0 rjmp .L176 2129 1096 8091 0000 lds r24,EE_Parameter+28 2130 109a 9927 clr r25 2131 109c 880F lsl r24 2132 109e 991F rol r25 2133 10a0 880F lsl r24 2134 10a2 991F rol r25 2135 10a4 7C01 movw r14,r24 2136 10a6 0027 clr r16 2137 10a8 F7FC sbrc r15,7 2138 10aa 0095 com r16 2139 10ac 102F mov r17,r16 2140 10ae 8091 0000 lds r24,IntegralNick 2141 10b2 9091 0000 lds r25,(IntegralNick)+1 2142 10b6 A091 0000 lds r26,(IntegralNick)+2 2143 10ba B091 0000 lds r27,(IntegralNick)+3 2144 10be BC01 movw r22,r24 2145 10c0 CD01 movw r24,r26 2146 10c2 A801 movw r20,r16 2147 10c4 9701 movw r18,r14 2148 10c6 0E94 0000 call __divmodsi4 2149 10ca 3093 0000 sts (Data3D)+1,r19 2150 10ce 2093 0000 sts Data3D,r18 2151 10d2 8091 0000 lds r24,IntegralRoll 2152 10d6 9091 0000 lds r25,(IntegralRoll)+1 2153 10da A091 0000 lds r26,(IntegralRoll)+2 2154 10de B091 0000 lds r27,(IntegralRoll)+3 2155 10e2 BC01 movw r22,r24 2156 10e4 CD01 movw r24,r26 2157 10e6 A801 movw r20,r16 2158 10e8 9701 movw r18,r14 2159 10ea 0E94 0000 call __divmodsi4 2160 10ee 3093 0000 sts (Data3D+2)+1,r19 2161 10f2 2093 0000 sts Data3D+2,r18 2162 10f6 2091 0000 lds r18,ErsatzKompass 2163 10fa 3091 0000 lds r19,(ErsatzKompass)+1 2164 10fe 4091 0000 lds r20,(ErsatzKompass)+2 2165 1102 5091 0000 lds r21,(ErsatzKompass)+3 2166 1106 DA01 movw r26,r20 2167 1108 C901 movw r24,r18 2168 110a 63E0 ldi r22,3 2169 110c 880F 1: lsl r24 2170 110e 991F rol r25 2171 1110 AA1F rol r26 2172 1112 BB1F rol r27 2173 1114 6A95 dec r22 2174 1116 D1F7 brne 1b 2175 1118 820F add r24,r18 2176 111a 931F adc r25,r19 2177 111c A41F adc r26,r20 2178 111e B51F adc r27,r21 2179 1120 820F add r24,r18 2180 1122 931F adc r25,r19 2181 1124 A41F adc r26,r20 2182 1126 B51F adc r27,r21 2183 1128 2091 0000 lds r18,GIER_GRAD_FAKTOR 2184 112c 3091 0000 lds r19,(GIER_GRAD_FAKTOR)+1 2185 1130 4091 0000 lds r20,(GIER_GRAD_FAKTOR)+2 2186 1134 5091 0000 lds r21,(GIER_GRAD_FAKTOR)+3 2187 1138 BC01 movw r22,r24 2188 113a CD01 movw r24,r26 2189 113c 0E94 0000 call __divmodsi4 2190 1140 3093 0000 sts (Data3D+4)+1,r19 2191 1144 2093 0000 sts Data3D+4,r18 2192 1148 8091 0000 lds r24,SummeNick 2193 114c 9091 0000 lds r25,(SummeNick)+1 2194 1150 A091 0000 lds r26,(SummeNick)+2 2195 1154 B091 0000 lds r27,(SummeNick)+3 2196 1158 39E0 ldi r19,9 2197 115a B595 1: asr r27 2198 115c A795 ror r26 2199 115e 9795 ror r25 2200 1160 8795 ror r24 2201 1162 3A95 dec r19 2202 1164 D1F7 brne 1b 2203 1166 8093 0000 sts Data3D+6,r24 2204 116a 8091 0000 lds r24,SummeRoll 2205 116e 9091 0000 lds r25,(SummeRoll)+1 2206 1172 A091 0000 lds r26,(SummeRoll)+2 2207 1176 B091 0000 lds r27,(SummeRoll)+3 2208 117a 29E0 ldi r18,9 2209 117c B595 1: asr r27 2210 117e A795 ror r26 2211 1180 9795 ror r25 2212 1182 8795 ror r24 2213 1184 2A95 dec r18 2214 1186 D1F7 brne 1b 2215 1188 8093 0000 sts Data3D+7,r24 2216 118c 8091 0000 lds r24,Mess_Integral_Gier 2217 1190 9091 0000 lds r25,(Mess_Integral_Gier)+1 2218 1194 A091 0000 lds r26,(Mess_Integral_Gier)+2 2219 1198 B091 0000 lds r27,(Mess_Integral_Gier)+3 2220 119c 09E0 ldi r16,9 2221 119e B595 1: asr r27 2222 11a0 A795 ror r26 2223 11a2 9795 ror r25 2224 11a4 8795 ror r24 2225 11a6 0A95 dec r16 2226 11a8 D1F7 brne 1b 2227 11aa 8093 0000 sts Data3D+8,r24 2228 11ae 8EE0 ldi r24,lo8(14) 2229 11b0 90E0 ldi r25,hi8(14) 2230 11b2 9F93 push r25 2231 11b4 8F93 push r24 2232 11b6 80E0 ldi r24,lo8(Data3D) 2233 11b8 90E0 ldi r25,hi8(Data3D) 2234 11ba 9F93 push r25 2235 11bc 8F93 push r24 2236 11be 81E0 ldi r24,lo8(1) 2237 11c0 8F93 push r24 2238 11c2 8F93 push r24 2239 11c4 83E4 ldi r24,lo8(67) 2240 11c6 8F93 push r24 2241 11c8 0E94 0000 call SendOutData 2242 11cc 8091 0000 lds r24,Intervall3D 2243 11d0 9091 0000 lds r25,(Intervall3D)+1 2244 11d4 0E94 0000 call SetDelay 2245 11d8 9093 0000 sts (Timer3D)+1,r25 2246 11dc 8093 0000 sts Timer3D,r24 2247 11e0 2DB7 in r18,__SP_L__ 2248 11e2 3EB7 in r19,__SP_H__ 2249 11e4 295F subi r18,lo8(-(7)) 2250 11e6 3F4F sbci r19,hi8(-(7)) 2251 11e8 2DBF out __SP_L__,r18 2252 .L176: 2253 11ea 8091 0000 lds r24,DebugTextAnforderung 2254 11ee 8F3F cpi r24,lo8(-1) 2255 11f0 71F1 breq .L177 2256 11f2 9927 clr r25 2257 11f4 14E0 ldi r17,4 2258 11f6 880F 1: lsl r24 2259 11f8 991F rol r25 2260 11fa 1A95 dec r17 2261 11fc E1F7 brne 1b 2262 11fe 8050 subi r24,lo8(-(ANALOG_TEXT)) 2263 1200 9040 sbci r25,hi8(-(ANALOG_TEXT)) 2264 1202 40E1 ldi r20,lo8(16) 2265 1204 50E0 ldi r21,hi8(16) 2266 1206 BC01 movw r22,r24 2267 1208 CE01 movw r24,r28 2268 120a 0196 adiw r24,1 2269 120c 0E94 0000 call memcpy_P 2270 1210 80E1 ldi r24,lo8(16) 2271 1212 90E0 ldi r25,hi8(16) 2272 1214 9F93 push r25 2273 1216 8F93 push r24 2274 1218 CE01 movw r24,r28 2275 121a 0196 adiw r24,1 2276 121c 9F93 push r25 2277 121e 8F93 push r24 2278 1220 81E0 ldi r24,lo8(1) 2279 1222 90E0 ldi r25,hi8(1) 2280 1224 9F93 push r25 2281 1226 8F93 push r24 2282 1228 80E0 ldi r24,lo8(DebugTextAnforderung) 2283 122a 90E0 ldi r25,hi8(DebugTextAnforderung) 2284 122c 9F93 push r25 2285 122e 8F93 push r24 2286 1230 82E0 ldi r24,lo8(2) 2287 1232 8F93 push r24 2288 1234 81E0 ldi r24,lo8(1) 2289 1236 8F93 push r24 2290 1238 81E4 ldi r24,lo8(65) 2291 123a 8F93 push r24 2292 123c 0E94 0000 call SendOutData 2293 1240 8FEF ldi r24,lo8(-1) 2294 1242 8093 0000 sts DebugTextAnforderung,r24 2295 1246 8DB7 in r24,__SP_L__ 2296 1248 9EB7 in r25,__SP_H__ 2297 124a 0B96 adiw r24,11 2298 124c 8DBF out __SP_L__,r24 2299 .L177: 2300 124e 8091 0000 lds r24,ConfirmFrame 2301 1252 8823 tst r24 2302 1254 D1F0 breq .L178 2303 1256 8091 0000 lds r24,UebertragungAbgeschlossen 2304 125a 8823 tst r24 2305 125c B1F0 breq .L178 2306 125e 81E0 ldi r24,lo8(1) 2307 1260 90E0 ldi r25,hi8(1) 2308 1262 9F93 push r25 2309 1264 8F93 push r24 2310 1266 80E0 ldi r24,lo8(ConfirmFrame) 2311 1268 90E0 ldi r25,hi8(ConfirmFrame) 2312 126a 9F93 push r25 2313 126c 8F93 push r24 2314 126e 81E0 ldi r24,lo8(1) 2315 1270 8F93 push r24 2316 1272 8F93 push r24 2317 1274 82E4 ldi r24,lo8(66) 2318 1276 8F93 push r24 2319 1278 0E94 0000 call SendOutData 2320 127c 1092 0000 sts ConfirmFrame,__zero_reg__ 2321 1280 2DB7 in r18,__SP_L__ 2322 1282 3EB7 in r19,__SP_H__ 2323 1284 295F subi r18,lo8(-(7)) 2324 1286 3F4F sbci r19,hi8(-(7)) 2325 1288 2DBF out __SP_L__,r18 2326 .L178: 2327 128a 8091 0000 lds r24,GetPPMChannelAnforderung 2328 128e 8823 tst r24 2329 1290 C9F0 breq .L158 2330 1292 8091 0000 lds r24,UebertragungAbgeschlossen 2331 1296 8823 tst r24 2332 1298 A9F0 breq .L158 2333 129a 84E3 ldi r24,lo8(52) 2334 129c 90E0 ldi r25,hi8(52) 2335 129e 9F93 push r25 2336 12a0 8F93 push r24 2337 12a2 80E0 ldi r24,lo8(PPM_in) 2338 12a4 90E0 ldi r25,hi8(PPM_in) 2339 12a6 9F93 push r25 2340 12a8 8F93 push r24 2341 12aa 81E0 ldi r24,lo8(1) 2342 12ac 8F93 push r24 2343 12ae 8F93 push r24 2344 12b0 80E5 ldi r24,lo8(80) 2345 12b2 8F93 push r24 2346 12b4 0E94 0000 call SendOutData 2347 12b8 1092 0000 sts GetPPMChannelAnforderung,__zero_reg__ 2348 12bc 8DB7 in r24,__SP_L__ 2349 12be 9EB7 in r25,__SP_H__ 2350 12c0 0796 adiw r24,7 2351 12c2 8DBF out __SP_L__,r24 2352 .L158: 2353 /* epilogue: frame size=16 */ 2354 12c4 E6E0 ldi r30,6 2355 12c6 C05F subi r28,-16 2356 12c8 0C94 0000 jmp __epilogue_restores__+24 2357 /* epilogue end (size=4) */ 2358 /* function DatenUebertragung size 720 (710) */ 2360 .comm Debug_Timer,2,1 2361 .comm Kompass_Timer,2,1 2362 .comm MotorTest,16,1 2363 .comm DebugOut,66,1 2364 .comm WinkelOut,8,1 2365 .comm Data3D,14,1 2366 .comm ExternControl,11,1 2367 .comm VersionInfo,10,1 2368 .comm TxdBuffer,160,1 2369 .comm RxdBuffer,160,1 2370 .comm ConfirmFrame,1,1 2371 .comm Display_Timer,2,1 2372 .comm Timer3D,2,1 2373 /* File "uart.c": code 2416 = 0x0970 (2325), prologues 47, epilogues 44 */ DEFINED SYMBOLS *ABS*:00000000 uart.c C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:3 *ABS*:0000003f __SREG__ C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:4 *ABS*:0000003e __SP_H__ C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:5 *ABS*:0000003d __SP_L__ C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:6 *ABS*:00000000 __tmp_reg__ C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:7 *ABS*:00000001 __zero_reg__ C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:14 .progmem.data:00000000 ANALOG_TEXT C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:52 .bss:00000000 AboTimeOut C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:58 .bss:00000002 Display_Interval C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:64 .bss:00000004 Intervall3D C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:70 .bss:00000006 DebugDataIntervall C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:76 .data:00000000 MeineSlaveAdresse C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:81 .data:00000001 PcZugriff C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:86 .data:00000002 DebugTextAnforderung C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:93 .bss:00000008 PC_MotortestActive C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:99 .bss:00000009 PC_DebugTimeout C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:105 .bss:0000000a RxDataLen C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:111 .bss:0000000b pRxData C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:117 .bss:0000000d AnzahlEmpfangsBytes C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:123 .bss:0000000e CntCrcError C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:129 .data:00000003 UebertragungAbgeschlossen C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:136 .bss:0000000f NeueKoordinateEmpfangen C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:142 .bss:00000010 NeuerDatensatzEmpfangen C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:148 .bss:00000011 SioTmp C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:154 .bss:00000012 DisplayLine C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:160 .bss:00000013 GetPPMChannelAnforderung C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:166 .bss:00000014 GetVersionAnforderung C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:172 .bss:00000015 DebugDataAnforderung C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:178 .bss:00000016 DebugDisplayAnforderung C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:184 .bss:00000017 DebugDisplayAnforderung1 C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:190 .bss:00000018 GetExternalControl .bss:00000019 ptr.6 C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:196 .text:00000000 __vector_22 *COM*:000000a0 TxdBuffer C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:192 .bss:0000001b crc.1 C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:250 .bss:0000001d crc1.2 C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:251 .bss:0000001e crc2.3 C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:252 .bss:0000001f buf_ptr.4 C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:253 .bss:00000020 UartState.5 C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:257 .text:0000006c __vector_20 *COM*:000000a0 RxdBuffer C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:473 .text:0000023c AddCRC C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:529 .text:0000029c SendOutData C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:729 .text:00000414 Decode64 C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:842 .text:000004e8 BearbeiteRxDaten *COM*:00000010 MotorTest *COM*:0000000a VersionInfo *COM*:0000000b ExternControl *COM*:00000001 ConfirmFrame *COM*:00000002 Timer3D C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:1698 .text:00000c94 uart_putchar C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:1714 .text:00000ca4 UART_Init *COM*:00000002 Debug_Timer *COM*:00000002 Kompass_Timer C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:1767 .progmem.data:00000200 __c.0 C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:1772 .text:00000d2c DatenUebertragung *COM*:00000002 Display_Timer *COM*:00000008 WinkelOut *COM*:00000042 DebugOut *COM*:0000000e Data3D UNDEFINED SYMBOLS __do_copy_data __do_clear_bss LcdClear ServoActive __prologue_saves__ __epilogue_restores__ KompassValue KompassStartwert __divmodhi4 KompassRichtung Mixer MixerTable_WriteToEEProm GetActiveParamSet ParamSet_ReadFromEEProm EE_Parameter ParamSet_WriteToEEProm __mulsi3 Umschlag180Nick Umschlag180Roll MotorenEin Piep LipoDetection LIBFC_ReceiverInit PPM_in I2C_ReadBLConfig BLConfig I2C_WriteBLConfig SetDelay RemoteKeys MenuePunkt CheckDelay DisplayBuff Menu DispPtr Menu_Putchar _printf_P MaxMenue IntegralNick __divmodsi4 IntegralRoll Parameter_UserParam1 Parameter_UserParam2 CopyDebugValues ErsatzKompass GIER_GRAD_FAKTOR SummeNick SummeRoll Mess_Integral_Gier memcpy_P