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