1 .file "spi.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 MagVec 11 .global MagVec 12 .section .bss 15 MagVec: 16 0000 0000 0000 .skip 6,0 16 0000 17 .global POI_KameraNick 18 .global POI_KameraNick 21 POI_KameraNick: 22 0006 0000 .skip 2,0 23 .global NC_To_FC_MaxAltitude 24 .global NC_To_FC_MaxAltitude 27 NC_To_FC_MaxAltitude: 28 0008 00 .skip 1,0 29 .global NC_To_FC_Flags 30 .global NC_To_FC_Flags 33 NC_To_FC_Flags: 34 0009 00 .skip 1,0 35 .global EarthMagneticInclinationTheoretic 36 .global EarthMagneticInclinationTheoretic 39 EarthMagneticInclinationTheoretic: 40 000a 00 .skip 1,0 41 .global EarthMagneticInclination 42 .global EarthMagneticInclination 45 EarthMagneticInclination: 46 000b 00 .skip 1,0 47 .global EarthMagneticField 48 .global EarthMagneticField 51 EarthMagneticField: 52 000c 00 .skip 1,0 53 .global NC_GPS_ModeCharacter 54 .data 57 NC_GPS_ModeCharacter: 58 0000 20 .byte 32 59 .global NC_ErrorCode 60 .global NC_ErrorCode 61 .section .bss 64 NC_ErrorCode: 65 000d 00 .skip 1,0 66 .global SPI_CommandCounter 67 .global SPI_CommandCounter 70 SPI_CommandCounter: 71 000e 00 .skip 1,0 72 .global SPI_CommandSequence 73 .data 76 SPI_CommandSequence: 77 0001 0B .byte 11 78 0002 0A .byte 10 79 0003 0D .byte 13 80 0004 0B .byte 11 81 0005 0C .byte 12 82 0006 0E .byte 14 83 0007 0B .byte 11 84 0008 0F .byte 15 85 0009 10 .byte 16 86 000a 0B .byte 11 87 000b 11 .byte 17 88 .global NaviDataOkay 91 NaviDataOkay: 92 000c FA .byte -6 93 .global FromNC_Rotate_S 94 .global FromNC_Rotate_S 95 .section .bss 98 FromNC_Rotate_S: 99 000f 00 .skip 1,0 100 .global FromNC_Rotate_C 101 .data 104 FromNC_Rotate_C: 105 000d 20 .byte 32 106 .text 107 .global SPI_MasterInit 109 SPI_MasterInit: 110 /* prologue: frame size=0 */ 111 /* prologue end (size=0) */ 112 0000 84B1 in r24,36-0x20 113 0002 806A ori r24,lo8(-96) 114 0004 84B9 out 36-0x20,r24 115 0006 3D9A sbi 39-0x20,5 116 0008 82E5 ldi r24,lo8(82) 117 000a 8CBD out 76-0x20,r24 118 000c 1DBC out 77-0x20,__zero_reg__ 119 000e 459A sbi 40-0x20,5 120 0010 81E0 ldi r24,lo8(1) 121 0012 8093 0000 sts SPITransferCompleted,r24 122 0016 8AEA ldi r24,lo8(-86) 123 0018 8093 0000 sts ToNaviCtrl,r24 124 001c 83E8 ldi r24,lo8(-125) 125 001e 8093 0000 sts ToNaviCtrl+1,r24 126 0022 8AE0 ldi r24,lo8(10) 127 0024 8093 0000 sts ToNaviCtrl+2,r24 128 0028 1092 0000 sts (ToNaviCtrl+3)+1,__zero_reg__ 129 002c 1092 0000 sts ToNaviCtrl+3,__zero_reg__ 130 0030 1092 0000 sts (ToNaviCtrl+5)+1,__zero_reg__ 131 0034 1092 0000 sts ToNaviCtrl+5,__zero_reg__ 132 0038 1092 0000 sts FromNaviCtrl_Value+3,__zero_reg__ 133 003c 1092 0000 sts SPI_RxDataValid,__zero_reg__ 134 /* epilogue: frame size=0 */ 135 0040 0895 ret 136 /* epilogue end (size=1) */ 137 /* function SPI_MasterInit size 33 (32) */ 139 .lcomm SPI_RXState.2,1 140 .lcomm rxchksum.3,1 141 .global SPI_TransmitByte 143 SPI_TransmitByte: 144 /* prologue: frame size=0 */ 145 /* prologue end (size=0) */ 146 0042 3091 0000 lds r19,SPITransferCompleted 147 0046 3323 tst r19 148 0048 01F0 breq .+2 149 004a 00C0 rjmp .L2 150 004c 0DB4 in __tmp_reg__,77-0x20 151 004e 07FE sbrs __tmp_reg__,7 152 0050 00C0 rjmp .L2 153 0052 84E0 ldi r24,lo8(4) 154 0054 8093 0000 sts SendSPI,r24 155 0058 459A sbi 40-0x20,5 156 005a 2EB5 in r18,78-0x20 157 005c 8091 0000 lds r24,SPI_RXState.2 158 0060 9927 clr r25 159 0062 8130 cpi r24,1 160 0064 9105 cpc r25,__zero_reg__ 161 0066 01F0 breq .L8 162 0068 8230 cpi r24,2 163 006a 9105 cpc r25,__zero_reg__ 164 006c 04F4 brge .L16 165 006e 892B or r24,r25 166 0070 01F0 breq .L6 167 0072 00C0 rjmp .L5 168 .L16: 169 0074 0297 sbiw r24,2 170 0076 01F0 breq .L11 171 0078 00C0 rjmp .L5 172 .L6: 173 007a 3093 0000 sts SPI_RxBufferIndex,r19 174 007e 2093 0000 sts rxchksum.3,r18 175 0082 2138 cpi r18,lo8(-127) 176 0084 01F4 brne .L5 177 0086 81E0 ldi r24,lo8(1) 178 0088 00C0 rjmp .L19 179 .L8: 180 008a 2535 cpi r18,lo8(85) 181 008c 01F4 brne .L9 182 008e 8091 0000 lds r24,rxchksum.3 183 0092 820F add r24,r18 184 0094 8093 0000 sts rxchksum.3,r24 185 0098 82E0 ldi r24,lo8(2) 186 .L19: 187 009a 8093 0000 sts SPI_RXState.2,r24 188 009e 00C0 rjmp .L5 189 .L9: 190 00a0 3093 0000 sts SPI_RXState.2,r19 191 00a4 00C0 rjmp .L5 192 .L11: 193 00a6 8091 0000 lds r24,SPI_RxBufferIndex 194 00aa E82F mov r30,r24 195 00ac FF27 clr r31 196 00ae E050 subi r30,lo8(-(SPI_Buffer)) 197 00b0 F040 sbci r31,hi8(-(SPI_Buffer)) 198 00b2 2083 st Z,r18 199 00b4 8F5F subi r24,lo8(-(1)) 200 00b6 8093 0000 sts SPI_RxBufferIndex,r24 201 00ba 9091 0000 lds r25,rxchksum.3 202 00be 8032 cpi r24,lo8(32) 203 00c0 00F0 brlo .L12 204 00c2 2917 cp r18,r25 205 00c4 01F4 brne .L13 206 00c6 80E2 ldi r24,lo8(32) 207 00c8 A0E0 ldi r26,lo8(SPI_Buffer) 208 00ca B0E0 ldi r27,hi8(SPI_Buffer) 209 00cc E0E0 ldi r30,lo8(FromNaviCtrl) 210 00ce F0E0 ldi r31,hi8(FromNaviCtrl) 211 00d0 0D90 ld __tmp_reg__,X+ 212 00d2 0192 st Z+,__tmp_reg__ 213 00d4 8A95 dec r24 214 00d6 01F4 brne .-8 215 00d8 81E0 ldi r24,lo8(1) 216 00da 8093 0000 sts SPI_RxDataValid,r24 217 00de 00C0 rjmp .L14 218 .L13: 219 00e0 3093 0000 sts SPI_RxDataValid,r19 220 .L14: 221 00e4 1092 0000 sts SPI_RXState.2,__zero_reg__ 222 00e8 00C0 rjmp .L5 223 .L12: 224 00ea 920F add r25,r18 225 00ec 9093 0000 sts rxchksum.3,r25 226 .L5: 227 00f0 2091 0000 lds r18,SPI_BufferIndex 228 00f4 2232 cpi r18,lo8(34) 229 00f6 00F0 brlo .+2 230 00f8 00C0 rjmp .L17 231 00fa 4598 cbi 40-0x20,5 232 /* #APP */ 233 00fc 0000 nop 234 00fe 0000 nop 235 0100 0000 nop 236 0102 0000 nop 237 0104 0000 nop 238 0106 0000 nop 239 0108 0000 nop 240 010a 0000 nop 241 010c 0000 nop 242 010e 0000 nop 243 0110 0000 nop 244 0112 0000 nop 245 0114 0000 nop 246 0116 0000 nop 247 0118 0000 nop 248 011a 0000 nop 249 011c 0000 nop 250 011e 0000 nop 251 0120 0000 nop 252 0122 0000 nop 253 0124 0000 nop 254 0126 0000 nop 255 0128 0000 nop 256 012a 0000 nop 257 /* #NOAPP */ 258 012c E091 0000 lds r30,SPI_TX_Buffer 259 0130 F091 0000 lds r31,(SPI_TX_Buffer)+1 260 0134 E20F add r30,r18 261 0136 F11D adc r31,__zero_reg__ 262 0138 8081 ld r24,Z 263 013a 8EBD out 78-0x20,r24 264 013c 8091 0000 lds r24,ToNaviCtrl+33 265 0140 9081 ld r25,Z 266 0142 890F add r24,r25 267 0144 8093 0000 sts ToNaviCtrl+33,r24 268 0148 00C0 rjmp .L18 269 .L17: 270 014a 81E0 ldi r24,lo8(1) 271 014c 8093 0000 sts SPITransferCompleted,r24 272 .L18: 273 0150 2F5F subi r18,lo8(-(1)) 274 0152 2093 0000 sts SPI_BufferIndex,r18 275 .L2: 276 0156 0895 ret 277 /* epilogue: frame size=0 */ 278 /* epilogue: noreturn */ 279 /* epilogue end (size=0) */ 280 /* function SPI_TransmitByte size 164 (164) */ 282 .lcomm motorindex.0,1 283 .data 286 oldcommand.1: 287 000e 68 .byte 104 288 .text 289 .global UpdateSPI_Buffer 291 UpdateSPI_Buffer: 292 /* prologue: frame size=0 */ 293 0158 EF92 push r14 294 015a FF92 push r15 295 015c 0F93 push r16 296 015e 1F93 push r17 297 /* prologue end (size=4) */ 298 0160 8091 0000 lds r24,EE_Parameter+28 299 0164 9927 clr r25 300 0166 880F lsl r24 301 0168 991F rol r25 302 016a 880F lsl r24 303 016c 991F rol r25 304 016e 7C01 movw r14,r24 305 0170 0027 clr r16 306 0172 F7FC sbrc r15,7 307 0174 0095 com r16 308 0176 102F mov r17,r16 309 0178 8091 0000 lds r24,IntegralNick 310 017c 9091 0000 lds r25,(IntegralNick)+1 311 0180 A091 0000 lds r26,(IntegralNick)+2 312 0184 B091 0000 lds r27,(IntegralNick)+3 313 0188 BC01 movw r22,r24 314 018a CD01 movw r24,r26 315 018c A801 movw r20,r16 316 018e 9701 movw r18,r14 317 0190 0E94 0000 call __divmodsi4 318 0194 3093 0000 sts (ToNaviCtrl+3)+1,r19 319 0198 2093 0000 sts ToNaviCtrl+3,r18 320 019c 8091 0000 lds r24,IntegralRoll 321 01a0 9091 0000 lds r25,(IntegralRoll)+1 322 01a4 A091 0000 lds r26,(IntegralRoll)+2 323 01a8 B091 0000 lds r27,(IntegralRoll)+3 324 01ac BC01 movw r22,r24 325 01ae CD01 movw r24,r26 326 01b0 A801 movw r20,r16 327 01b2 9701 movw r18,r14 328 01b4 0E94 0000 call __divmodsi4 329 01b8 3093 0000 sts (ToNaviCtrl+5)+1,r19 330 01bc 2093 0000 sts ToNaviCtrl+5,r18 331 01c0 2091 0000 lds r18,ErsatzKompass 332 01c4 3091 0000 lds r19,(ErsatzKompass)+1 333 01c8 4091 0000 lds r20,(ErsatzKompass)+2 334 01cc 5091 0000 lds r21,(ErsatzKompass)+3 335 01d0 DA01 movw r26,r20 336 01d2 C901 movw r24,r18 337 01d4 63E0 ldi r22,3 338 01d6 880F 1: lsl r24 339 01d8 991F rol r25 340 01da AA1F rol r26 341 01dc BB1F rol r27 342 01de 6A95 dec r22 343 01e0 01F4 brne 1b 344 01e2 820F add r24,r18 345 01e4 931F adc r25,r19 346 01e6 A41F adc r26,r20 347 01e8 B51F adc r27,r21 348 01ea 820F add r24,r18 349 01ec 931F adc r25,r19 350 01ee A41F adc r26,r20 351 01f0 B51F adc r27,r21 352 01f2 2091 0000 lds r18,GIER_GRAD_FAKTOR 353 01f6 3091 0000 lds r19,(GIER_GRAD_FAKTOR)+1 354 01fa 4091 0000 lds r20,(GIER_GRAD_FAKTOR)+2 355 01fe 5091 0000 lds r21,(GIER_GRAD_FAKTOR)+3 356 0202 BC01 movw r22,r24 357 0204 CD01 movw r24,r26 358 0206 0E94 0000 call __divmodsi4 359 020a 3093 0000 sts (ToNaviCtrl+11)+1,r19 360 020e 2093 0000 sts ToNaviCtrl+11,r18 361 0212 8091 0000 lds r24,AdNeutralGier 362 0216 9091 0000 lds r25,(AdNeutralGier)+1 363 021a 2091 0000 lds r18,AdWertGier 364 021e 3091 0000 lds r19,(AdWertGier)+1 365 0222 821B sub r24,r18 366 0224 930B sbc r25,r19 367 0226 9093 0000 sts (ToNaviCtrl+17)+1,r25 368 022a 8093 0000 sts ToNaviCtrl+17,r24 369 022e E091 0000 lds r30,NaviCntAcc 370 0232 F091 0000 lds r31,(NaviCntAcc)+1 371 0236 8091 0000 lds r24,NaviAccNick 372 023a 9091 0000 lds r25,(NaviAccNick)+1 373 023e BF01 movw r22,r30 374 0240 0E94 0000 call __divmodhi4 375 0244 9B01 movw r18,r22 376 0246 220F lsl r18 377 0248 331F rol r19 378 024a 220F lsl r18 379 024c 331F rol r19 380 024e 260F add r18,r22 381 0250 371F adc r19,r23 382 0252 260F add r18,r22 383 0254 371F adc r19,r23 384 0256 37FF sbrs r19,7 385 0258 00C0 rjmp .L21 386 025a 2D5F subi r18,lo8(-(3)) 387 025c 3F4F sbci r19,hi8(-(3)) 388 .L21: 389 025e 3595 asr r19 390 0260 2795 ror r18 391 0262 3595 asr r19 392 0264 2795 ror r18 393 0266 3093 0000 sts (ToNaviCtrl+7)+1,r19 394 026a 2093 0000 sts ToNaviCtrl+7,r18 395 026e 8091 0000 lds r24,NaviAccRoll 396 0272 9091 0000 lds r25,(NaviAccRoll)+1 397 0276 BF01 movw r22,r30 398 0278 0E94 0000 call __divmodhi4 399 027c 9B01 movw r18,r22 400 027e 220F lsl r18 401 0280 331F rol r19 402 0282 220F lsl r18 403 0284 331F rol r19 404 0286 260F add r18,r22 405 0288 371F adc r19,r23 406 028a 260F add r18,r22 407 028c 371F adc r19,r23 408 028e 37FF sbrs r19,7 409 0290 00C0 rjmp .L22 410 0292 2D5F subi r18,lo8(-(3)) 411 0294 3F4F sbci r19,hi8(-(3)) 412 .L22: 413 0296 3595 asr r19 414 0298 2795 ror r18 415 029a 3595 asr r19 416 029c 2795 ror r18 417 029e 3093 0000 sts (ToNaviCtrl+9)+1,r19 418 02a2 2093 0000 sts ToNaviCtrl+9,r18 419 02a6 1092 0000 sts (NaviCntAcc)+1,__zero_reg__ 420 02aa 1092 0000 sts NaviCntAcc,__zero_reg__ 421 02ae 1092 0000 sts (NaviAccNick)+1,__zero_reg__ 422 02b2 1092 0000 sts NaviAccNick,__zero_reg__ 423 02b6 1092 0000 sts (NaviAccRoll)+1,__zero_reg__ 424 02ba 1092 0000 sts NaviAccRoll,__zero_reg__ 425 02be 8091 0000 lds r24,ToNaviCtrl+2 426 02c2 9927 clr r25 427 02c4 AA27 clr r26 428 02c6 BB27 clr r27 429 02c8 FC01 movw r30,r24 430 02ca 3A97 sbiw r30,10 431 02cc E830 cpi r30,8 432 02ce F105 cpc r31,__zero_reg__ 433 02d0 00F0 brlo .+2 434 02d2 00C0 rjmp .L23 435 02d4 E050 subi r30,lo8(-(pm(.L50))) 436 02d6 F040 sbci r31,hi8(-(pm(.L50))) 437 02d8 0C94 0000 jmp __tablejump2__ 438 .data 439 .section .progmem.gcc_sw_table, "a", @progbits 440 .p2align 1 441 .L50: 442 0000 0000 .word pm(.L24) 443 0002 0000 .word pm(.L31) 444 0004 0000 .word pm(.L44) 445 0006 0000 .word pm(.L26) 446 0008 0000 .word pm(.L48) 447 000a 0000 .word pm(.L49) 448 000c 0000 .word pm(.L25) 449 000e 0000 .word pm(.L27) 450 .text 451 .L24: 452 02dc 8091 0000 lds r24,Parameter_UserParam1 453 02e0 8093 0000 sts ToNaviCtrl+21,r24 454 02e4 8091 0000 lds r24,Parameter_UserParam2 455 02e8 8093 0000 sts ToNaviCtrl+22,r24 456 02ec 8091 0000 lds r24,Parameter_UserParam3 457 02f0 8093 0000 sts ToNaviCtrl+23,r24 458 02f4 8091 0000 lds r24,Parameter_UserParam4 459 02f8 8093 0000 sts ToNaviCtrl+24,r24 460 02fc 8091 0000 lds r24,Parameter_UserParam5 461 0300 8093 0000 sts ToNaviCtrl+25,r24 462 0304 8091 0000 lds r24,Parameter_UserParam6 463 0308 8093 0000 sts ToNaviCtrl+26,r24 464 030c 8091 0000 lds r24,Parameter_UserParam7 465 0310 8093 0000 sts ToNaviCtrl+27,r24 466 0314 8091 0000 lds r24,Parameter_UserParam8 467 0318 8093 0000 sts ToNaviCtrl+28,r24 468 031c 8091 0000 lds r24,FC_StatusFlags 469 0320 8093 0000 sts ToNaviCtrl+29,r24 470 0324 8091 0000 lds r24,FC_StatusFlags 471 0328 837F andi r24,lo8(-13) 472 032a 8093 0000 sts FC_StatusFlags,r24 473 032e 0E94 0000 call GetActiveParamSet 474 0332 8093 0000 sts ToNaviCtrl+30,r24 475 0336 8091 0000 lds r24,EE_Parameter+102 476 033a 8093 0000 sts ToNaviCtrl+31,r24 477 033e 8091 0000 lds r24,FC_StatusFlags2 478 0342 00C0 rjmp .L72 479 .L25: 480 0344 8091 0000 lds r24,Capacity 481 0348 9091 0000 lds r25,(Capacity)+1 482 034c 9093 0000 sts (ToNaviCtrl+21)+1,r25 483 0350 8093 0000 sts ToNaviCtrl+21,r24 484 0354 8091 0000 lds r24,Capacity+4 485 0358 9091 0000 lds r25,(Capacity+4)+1 486 035c 9093 0000 sts (ToNaviCtrl+23)+1,r25 487 0360 8093 0000 sts ToNaviCtrl+23,r24 488 0364 8091 0000 lds r24,UBat 489 0368 9091 0000 lds r25,(UBat)+1 490 036c 8093 0000 sts ToNaviCtrl+25,r24 491 0370 8091 0000 lds r24,BattLowVoltageWarning 492 0374 8093 0000 sts ToNaviCtrl+26,r24 493 0378 8091 0000 lds r24,VarioCharacter 494 037c 8093 0000 sts ToNaviCtrl+27,r24 495 0380 9091 0000 lds r25,motorindex.0 496 0384 9093 0000 sts ToNaviCtrl+28,r25 497 0388 E92F mov r30,r25 498 038a FF27 clr r31 499 038c A3E0 ldi r26,3 500 038e EE0F 1: lsl r30 501 0390 FF1F rol r31 502 0392 AA95 dec r26 503 0394 01F4 brne 1b 504 0396 E050 subi r30,lo8(-(Motor)) 505 0398 F040 sbci r31,hi8(-(Motor)) 506 039a 8681 ldd r24,Z+6 507 039c 8093 0000 sts ToNaviCtrl+29,r24 508 03a0 8381 ldd r24,Z+3 509 03a2 8093 0000 sts ToNaviCtrl+30,r24 510 03a6 8781 ldd r24,Z+7 511 03a8 8093 0000 sts ToNaviCtrl+31,r24 512 03ac 8581 ldd r24,Z+5 513 03ae 8093 0000 sts ToNaviCtrl+32,r24 514 03b2 892F mov r24,r25 515 03b4 8F5F subi r24,lo8(-(1)) 516 03b6 6CE0 ldi r22,lo8(12) 517 03b8 0E94 0000 call __udivmodqi4 518 03bc 9093 0000 sts motorindex.0,r25 519 03c0 00C0 rjmp .L23 520 .L26: 521 03c2 8091 0000 lds r24,EE_Parameter+81 522 03c6 8093 0000 sts ToNaviCtrl+21,r24 523 03ca 8091 0000 lds r24,EE_Parameter+82 524 03ce 8093 0000 sts ToNaviCtrl+22,r24 525 03d2 8091 0000 lds r24,EE_Parameter+83 526 03d6 8093 0000 sts ToNaviCtrl+23,r24 527 03da 8091 0000 lds r24,EE_Parameter+84 528 03de 8093 0000 sts ToNaviCtrl+24,r24 529 03e2 8091 0000 lds r24,EE_Parameter+85 530 03e6 8093 0000 sts ToNaviCtrl+25,r24 531 03ea 8091 0000 lds r24,EE_Parameter+89 532 03ee 8093 0000 sts ToNaviCtrl+26,r24 533 03f2 8091 0000 lds r24,EE_Parameter+90 534 03f6 8093 0000 sts ToNaviCtrl+27,r24 535 03fa 8091 0000 lds r24,EE_Parameter+91 536 03fe 8093 0000 sts ToNaviCtrl+28,r24 537 0402 8091 0000 lds r24,EE_Parameter+94 538 0406 8093 0000 sts ToNaviCtrl+29,r24 539 040a 8091 0000 lds r24,EE_Parameter+92 540 040e 8093 0000 sts ToNaviCtrl+30,r24 541 0412 8091 0000 lds r24,EE_Parameter+93 542 0416 8093 0000 sts ToNaviCtrl+31,r24 543 041a 8091 0000 lds r24,EE_Parameter+95 544 041e 00C0 rjmp .L72 545 .L27: 546 0420 8091 0000 lds r24,EE_Parameter+80 547 0424 8093 0000 sts ToNaviCtrl+21,r24 548 0428 8091 0000 lds r24,EE_Parameter+39 549 042c 8630 cpi r24,lo8(6) 550 042e 01F0 breq .L28 551 0430 8091 0000 lds r24,JetiBeep 552 0434 8234 cpi r24,lo8(66) 553 0436 01F0 breq .L29 554 0438 0E94 0000 call HoTT_Waring 555 043c E82F mov r30,r24 556 043e FF27 clr r31 557 0440 E050 subi r30,lo8(-(JETI_CODE)) 558 0442 F040 sbci r31,hi8(-(JETI_CODE)) 559 /* #APP */ 560 0444 8491 lpm r24, Z 561 562 /* #NOAPP */ 563 0446 8093 0000 sts JetiBeep,r24 564 044a 00C0 rjmp .L28 565 .L29: 566 044c 0E94 0000 call HoTT_Waring 567 .L28: 568 0450 8091 0000 lds r24,ToNC_SpeakHoTT 569 0454 8093 0000 sts ToNaviCtrl+22,r24 570 0458 00C0 rjmp .L23 571 .L31: 572 /* #APP */ 573 045a F894 cli 574 /* #NOAPP */ 575 045c 8091 0000 lds r24,EE_Parameter+3 576 0460 E82F mov r30,r24 577 0462 FF27 clr r31 578 0464 EE0F add r30,r30 579 0466 FF1F adc r31,r31 580 0468 E050 subi r30,lo8(-(PPM_in)) 581 046a F040 sbci r31,hi8(-(PPM_in)) 582 046c 0190 ld __tmp_reg__,Z+ 583 046e F081 ld r31,Z 584 0470 E02D mov r30,__tmp_reg__ 585 0472 E038 cpi r30,128 586 0474 F105 cpc r31,__zero_reg__ 587 0476 04F0 brlt .L32 588 0478 EFE7 ldi r30,lo8(127) 589 047a F0E0 ldi r31,hi8(127) 590 047c 00C0 rjmp .L33 591 .L32: 592 047e 2FEF ldi r18,hi8(-127) 593 0480 E138 cpi r30,lo8(-127) 594 0482 F207 cpc r31,r18 595 0484 04F4 brge .L33 596 0486 E1E8 ldi r30,lo8(-127) 597 0488 FFEF ldi r31,hi8(-127) 598 .L33: 599 048a E093 0000 sts ToNaviCtrl+21,r30 600 048e 8091 0000 lds r24,EE_Parameter+4 601 0492 E82F mov r30,r24 602 0494 FF27 clr r31 603 0496 EE0F add r30,r30 604 0498 FF1F adc r31,r31 605 049a E050 subi r30,lo8(-(PPM_in)) 606 049c F040 sbci r31,hi8(-(PPM_in)) 607 049e 0190 ld __tmp_reg__,Z+ 608 04a0 F081 ld r31,Z 609 04a2 E02D mov r30,__tmp_reg__ 610 04a4 E038 cpi r30,128 611 04a6 F105 cpc r31,__zero_reg__ 612 04a8 04F0 brlt .L35 613 04aa EFE7 ldi r30,lo8(127) 614 04ac F0E0 ldi r31,hi8(127) 615 04ae 00C0 rjmp .L36 616 .L35: 617 04b0 7FEF ldi r23,hi8(-127) 618 04b2 E138 cpi r30,lo8(-127) 619 04b4 F707 cpc r31,r23 620 04b6 04F4 brge .L36 621 04b8 E1E8 ldi r30,lo8(-127) 622 04ba FFEF ldi r31,hi8(-127) 623 .L36: 624 04bc E093 0000 sts ToNaviCtrl+22,r30 625 04c0 8091 0000 lds r24,EE_Parameter+2 626 04c4 E82F mov r30,r24 627 04c6 FF27 clr r31 628 04c8 EE0F add r30,r30 629 04ca FF1F adc r31,r31 630 04cc E050 subi r30,lo8(-(PPM_in)) 631 04ce F040 sbci r31,hi8(-(PPM_in)) 632 04d0 0190 ld __tmp_reg__,Z+ 633 04d2 F081 ld r31,Z 634 04d4 E02D mov r30,__tmp_reg__ 635 04d6 E038 cpi r30,128 636 04d8 F105 cpc r31,__zero_reg__ 637 04da 04F0 brlt .L38 638 04dc EFE7 ldi r30,lo8(127) 639 04de F0E0 ldi r31,hi8(127) 640 04e0 00C0 rjmp .L39 641 .L38: 642 04e2 8FEF ldi r24,hi8(-127) 643 04e4 E138 cpi r30,lo8(-127) 644 04e6 F807 cpc r31,r24 645 04e8 04F4 brge .L39 646 04ea E1E8 ldi r30,lo8(-127) 647 04ec FFEF ldi r31,hi8(-127) 648 .L39: 649 04ee E093 0000 sts ToNaviCtrl+23,r30 650 04f2 8091 0000 lds r24,EE_Parameter+1 651 04f6 E82F mov r30,r24 652 04f8 FF27 clr r31 653 04fa EE0F add r30,r30 654 04fc FF1F adc r31,r31 655 04fe E050 subi r30,lo8(-(PPM_in)) 656 0500 F040 sbci r31,hi8(-(PPM_in)) 657 0502 0190 ld __tmp_reg__,Z+ 658 0504 F081 ld r31,Z 659 0506 E02D mov r30,__tmp_reg__ 660 0508 E038 cpi r30,128 661 050a F105 cpc r31,__zero_reg__ 662 050c 04F0 brlt .L41 663 050e EFE7 ldi r30,lo8(127) 664 0510 F0E0 ldi r31,hi8(127) 665 0512 00C0 rjmp .L42 666 .L41: 667 0514 2FEF ldi r18,hi8(-127) 668 0516 E138 cpi r30,lo8(-127) 669 0518 F207 cpc r31,r18 670 051a 04F4 brge .L42 671 051c E1E8 ldi r30,lo8(-127) 672 051e FFEF ldi r31,hi8(-127) 673 .L42: 674 /* #APP */ 675 0520 7894 sei 676 /* #NOAPP */ 677 0522 E093 0000 sts ToNaviCtrl+24,r30 678 0526 8091 0000 lds r24,Poti 679 052a 8093 0000 sts ToNaviCtrl+25,r24 680 052e 8091 0000 lds r24,Poti+1 681 0532 8093 0000 sts ToNaviCtrl+26,r24 682 0536 8091 0000 lds r24,Poti+2 683 053a 8093 0000 sts ToNaviCtrl+27,r24 684 053e 8091 0000 lds r24,Poti+3 685 0542 8093 0000 sts ToNaviCtrl+28,r24 686 0546 8091 0000 lds r24,Poti+4 687 054a 8093 0000 sts ToNaviCtrl+29,r24 688 054e 8091 0000 lds r24,Poti+5 689 0552 8093 0000 sts ToNaviCtrl+30,r24 690 0556 8091 0000 lds r24,Poti+6 691 055a 8093 0000 sts ToNaviCtrl+31,r24 692 055e 8091 0000 lds r24,Poti+7 693 0562 00C0 rjmp .L72 694 .L44: 695 0564 8091 0000 lds r24,WinkelOut+6 696 0568 8630 cpi r24,lo8(6) 697 056a 00F0 brlo .L45 698 056c 1092 0000 sts WinkelOut+6,__zero_reg__ 699 0570 85E0 ldi r24,lo8(5) 700 .L45: 701 0572 8093 0000 sts ToNaviCtrl+21,r24 702 0576 8091 0000 lds r24,EE_Parameter+96 703 057a 8093 0000 sts ToNaviCtrl+22,r24 704 057e 8091 0000 lds r24,HoehenWert 705 0582 9091 0000 lds r25,(HoehenWert)+1 706 0586 A091 0000 lds r26,(HoehenWert)+2 707 058a B091 0000 lds r27,(HoehenWert)+3 708 058e BC01 movw r22,r24 709 0590 CD01 movw r24,r26 710 0592 25E0 ldi r18,lo8(5) 711 0594 30E0 ldi r19,hi8(5) 712 0596 40E0 ldi r20,hlo8(5) 713 0598 50E0 ldi r21,hhi8(5) 714 059a 0E94 0000 call __divmodsi4 715 059e 3093 0000 sts (ToNaviCtrl+23)+1,r19 716 05a2 2093 0000 sts ToNaviCtrl+23,r18 717 05a6 8091 0000 lds r24,SollHoehe 718 05aa 9091 0000 lds r25,(SollHoehe)+1 719 05ae A091 0000 lds r26,(SollHoehe)+2 720 05b2 B091 0000 lds r27,(SollHoehe)+3 721 05b6 BC01 movw r22,r24 722 05b8 CD01 movw r24,r26 723 05ba 25E0 ldi r18,lo8(5) 724 05bc 30E0 ldi r19,hi8(5) 725 05be 40E0 ldi r20,hlo8(5) 726 05c0 50E0 ldi r21,hhi8(5) 727 05c2 0E94 0000 call __divmodsi4 728 05c6 3093 0000 sts (ToNaviCtrl+25)+1,r19 729 05ca 2093 0000 sts ToNaviCtrl+25,r18 730 05ce 8091 0000 lds r24,EE_Parameter+86 731 05d2 8093 0000 sts ToNaviCtrl+27,r24 732 05d6 8091 0000 lds r24,EE_Parameter+87 733 05da 8093 0000 sts ToNaviCtrl+28,r24 734 05de 8091 0000 lds r24,EE_Parameter+88 735 05e2 8093 0000 sts ToNaviCtrl+29,r24 736 05e6 8091 0000 lds r24,SenderOkay 737 05ea 8093 0000 sts ToNaviCtrl+30,r24 738 05ee 8091 0000 lds r24,PPM_in 739 05f2 9091 0000 lds r25,(PPM_in)+1 740 05f6 8093 0000 sts ToNaviCtrl+31,r24 741 05fa 8091 0000 lds r24,DebugOut+16 742 05fe 9091 0000 lds r25,(DebugOut+16)+1 743 0602 97FD sbrc r25,7 744 0604 0396 adiw r24,3 745 .L47: 746 0606 9595 asr r25 747 0608 8795 ror r24 748 060a 9595 asr r25 749 060c 8795 ror r24 750 060e 00C0 rjmp .L72 751 .L48: 752 0610 1092 0000 sts ToNaviCtrl+21,__zero_reg__ 753 0614 8AE5 ldi r24,lo8(90) 754 0616 8093 0000 sts ToNaviCtrl+22,r24 755 061a 83E0 ldi r24,lo8(3) 756 061c 8093 0000 sts ToNaviCtrl+23,r24 757 0620 84E3 ldi r24,lo8(52) 758 0622 8093 0000 sts ToNaviCtrl+24,r24 759 0626 8091 0000 lds r24,PlatinenVersion 760 062a 8093 0000 sts ToNaviCtrl+25,r24 761 062e 8091 0000 lds r24,VersionInfo+5 762 0632 8093 0000 sts ToNaviCtrl+26,r24 763 0636 9091 0000 lds r25,VersionInfo+6 764 063a 9093 0000 sts ToNaviCtrl+27,r25 765 063e 8F77 andi r24,lo8(127) 766 0640 8093 0000 sts VersionInfo+5,r24 767 0644 9071 andi r25,lo8(16) 768 0646 9093 0000 sts VersionInfo+6,r25 769 064a 8091 0000 lds r24,VersionInfo+7 770 064e 8093 0000 sts ToNaviCtrl+28,r24 771 0652 8091 0000 lds r24,Parameter_GlobalConfig 772 0656 8093 0000 sts ToNaviCtrl+29,r24 773 065a 8091 0000 lds r24,Parameter_ExtraConfig 774 065e 8093 0000 sts ToNaviCtrl+30,r24 775 0662 8091 0000 lds r24,EE_Parameter+98 776 0666 8093 0000 sts ToNaviCtrl+31,r24 777 066a 8091 0000 lds r24,EE_Parameter+111 778 066e 00C0 rjmp .L72 779 .L49: 780 0670 8091 0000 lds r24,EE_Parameter+53 781 0674 8093 0000 sts ToNaviCtrl+21,r24 782 0678 8091 0000 lds r24,EE_Parameter+109 783 067c 8093 0000 sts ToNaviCtrl+22,r24 784 0680 8091 0000 lds r24,Parameter_ServoNickControl 785 0684 8093 0000 sts ToNaviCtrl+23,r24 786 0688 8091 0000 lds r24,EE_Parameter+46 787 068c 8093 0000 sts ToNaviCtrl+24,r24 788 0690 8091 0000 lds r24,EE_Parameter+47 789 0694 8093 0000 sts ToNaviCtrl+25,r24 790 0698 8091 0000 lds r24,EE_Parameter+48 791 069c 8093 0000 sts ToNaviCtrl+26,r24 792 06a0 8091 0000 lds r24,Parameter_ServoRollControl 793 06a4 8093 0000 sts ToNaviCtrl+27,r24 794 06a8 8091 0000 lds r24,EE_Parameter+50 795 06ac 8093 0000 sts ToNaviCtrl+28,r24 796 06b0 8091 0000 lds r24,EE_Parameter+51 797 06b4 8093 0000 sts ToNaviCtrl+29,r24 798 06b8 8091 0000 lds r24,EE_Parameter+52 799 06bc 8093 0000 sts ToNaviCtrl+30,r24 800 06c0 8091 0000 lds r24,Capacity+6 801 06c4 8093 0000 sts ToNaviCtrl+31,r24 802 06c8 8091 0000 lds r24,DebugOut+58 803 .L72: 804 06cc 8093 0000 sts ToNaviCtrl+32,r24 805 .L23: 806 06d0 8091 0000 lds r24,SPI_RxDataValid 807 06d4 8823 tst r24 808 06d6 01F4 brne .+2 809 06d8 00C0 rjmp .L51 810 06da 6091 0000 lds r22,FromNaviCtrl 811 06de 8091 0000 lds r24,oldcommand.1 812 06e2 6817 cp r22,r24 813 06e4 01F0 breq .L52 814 06e6 8AEF ldi r24,lo8(-6) 815 06e8 8093 0000 sts NaviDataOkay,r24 816 .L52: 817 06ec 6093 0000 sts oldcommand.1,r22 818 06f0 81E0 ldi r24,lo8(1) 819 06f2 8093 0000 sts CalculateCompassTimer,r24 820 06f6 4091 0000 lds r20,FromNaviCtrl+1 821 06fa 5091 0000 lds r21,(FromNaviCtrl+1)+1 822 06fe CA01 movw r24,r20 823 0700 8150 subi r24,lo8(-(511)) 824 0702 9E4F sbci r25,hi8(-(511)) 825 0704 8F5F subi r24,lo8(1023) 826 0706 9340 sbci r25,hi8(1023) 827 0708 00F4 brsh .L53 828 070a 2091 0000 lds r18,FromNaviCtrl+3 829 070e 3091 0000 lds r19,(FromNaviCtrl+3)+1 830 0712 C901 movw r24,r18 831 0714 8150 subi r24,lo8(-(511)) 832 0716 9E4F sbci r25,hi8(-(511)) 833 0718 8F5F subi r24,lo8(1023) 834 071a 9340 sbci r25,hi8(1023) 835 071c 00F4 brsh .L53 836 071e 8091 0000 lds r24,EE_Parameter+13 837 0722 85FF sbrs r24,5 838 0724 00C0 rjmp .L53 839 0726 5093 0000 sts (GPS_Nick)+1,r21 840 072a 4093 0000 sts GPS_Nick,r20 841 072e 3093 0000 sts (GPS_Roll)+1,r19 842 0732 2093 0000 sts GPS_Roll,r18 843 .L53: 844 0736 8091 0000 lds r24,FromNaviCtrl+7 845 073a 9091 0000 lds r25,(FromNaviCtrl+7)+1 846 073e 21E0 ldi r18,hi8(361) 847 0740 8936 cpi r24,lo8(361) 848 0742 9207 cpc r25,r18 849 0744 04F4 brge .L54 850 0746 9093 0000 sts (KompassValue)+1,r25 851 074a 8093 0000 sts KompassValue,r24 852 .L54: 853 074e 2091 0000 lds r18,FromNaviCtrl+17 854 0752 3091 0000 lds r19,(FromNaviCtrl+17)+1 855 0756 8091 0000 lds r24,beeptime 856 075a 9091 0000 lds r25,(beeptime)+1 857 075e 8217 cp r24,r18 858 0760 9307 cpc r25,r19 859 0762 00F4 brsh .L55 860 0764 8091 0000 lds r24,DisableRcOffBeeping 861 0768 8823 tst r24 862 076a 01F4 brne .L55 863 076c 3093 0000 sts (beeptime)+1,r19 864 0770 2093 0000 sts beeptime,r18 865 .L55: 866 0774 862F mov r24,r22 867 0776 9927 clr r25 868 0778 8936 cpi r24,105 869 077a 9105 cpc r25,__zero_reg__ 870 077c 01F4 brne .+2 871 077e 00C0 rjmp .L62 872 0780 8A36 cpi r24,106 873 0782 9105 cpc r25,__zero_reg__ 874 0784 04F4 brge .L70 875 0786 8736 cpi r24,103 876 0788 9105 cpc r25,__zero_reg__ 877 078a 01F0 breq .L57 878 078c 8836 cpi r24,104 879 078e 9105 cpc r25,__zero_reg__ 880 0790 01F4 brne .+2 881 0792 00C0 rjmp .L61 882 0794 00C0 rjmp .L20 883 .L70: 884 0796 8A36 cpi r24,106 885 0798 9105 cpc r25,__zero_reg__ 886 079a 01F4 brne .+2 887 079c 00C0 rjmp .L67 888 079e 8B36 cpi r24,107 889 07a0 9105 cpc r25,__zero_reg__ 890 07a2 01F4 brne .+2 891 07a4 00C0 rjmp .L63 892 07a6 00C0 rjmp .L20 893 .L57: 894 07a8 8091 0000 lds r24,FromNaviCtrl+19 895 07ac 8093 0000 sts FromNaviCtrl_Value,r24 896 07b0 8091 0000 lds r24,FromNaviCtrl+20 897 07b4 8093 0000 sts FromNaviCtrl_Value+2,r24 898 07b8 8091 0000 lds r24,FromNaviCtrl+21 899 07bc 8093 0000 sts FromNaviCtrl_Value+1,r24 900 07c0 8091 0000 lds r24,FromNaviCtrl+22 901 07c4 8093 0000 sts KompassFusion,r24 902 07c8 8091 0000 lds r24,FromNaviCtrl+23 903 07cc 8093 0000 sts FromNaviCtrl_Value+4,r24 904 07d0 8091 0000 lds r24,FromNaviCtrl+24 905 07d4 8093 0000 sts FromNC_Rotate_C,r24 906 07d8 8091 0000 lds r24,FromNaviCtrl+25 907 07dc 8093 0000 sts FromNC_Rotate_S,r24 908 07e0 8091 0000 lds r24,FromNaviCtrl+26 909 07e4 8093 0000 sts GPS_Aid_StickMultiplikator,r24 910 07e8 8091 0000 lds r24,CareFree 911 07ec 8823 tst r24 912 07ee 01F0 breq .L58 913 07f0 2091 0000 lds r18,FromNaviCtrl+27 914 07f4 3091 0000 lds r19,(FromNaviCtrl+27)+1 915 07f8 37FD sbrc r19,7 916 07fa 00C0 rjmp .L58 917 07fc 3093 0000 sts (KompassSollWert)+1,r19 918 0800 2093 0000 sts KompassSollWert,r18 919 0804 9091 0000 lds r25,EE_Parameter+55 920 0808 9923 tst r25 921 080a 01F0 breq .L58 922 080c 8FE0 ldi r24,lo8(15) 923 080e 989F mul r25,r24 924 0810 C001 movw r24,r0 925 0812 1124 clr r1 926 0814 281B sub r18,r24 927 0816 390B sbc r19,r25 928 0818 C901 movw r24,r18 929 081a 8859 subi r24,lo8(-(360)) 930 081c 9E4F sbci r25,hi8(-(360)) 931 081e 68E6 ldi r22,lo8(360) 932 0820 71E0 ldi r23,hi8(360) 933 0822 0E94 0000 call __divmodhi4 934 0826 9093 0000 sts (KompassSollWert)+1,r25 935 082a 8093 0000 sts KompassSollWert,r24 936 .L58: 937 082e 2091 0000 lds r18,POI_KameraNick 938 0832 3091 0000 lds r19,(POI_KameraNick)+1 939 0836 8091 0000 lds r24,FromNaviCtrl+29 940 083a 9091 0000 lds r25,(FromNaviCtrl+29)+1 941 083e 280F add r18,r24 942 0840 391F adc r19,r25 943 0842 37FF sbrs r19,7 944 0844 00C0 rjmp .L60 945 0846 2F5F subi r18,lo8(-(1)) 946 0848 3F4F sbci r19,hi8(-(1)) 947 .L60: 948 084a 3595 asr r19 949 084c 2795 ror r18 950 084e 3093 0000 sts (POI_KameraNick)+1,r19 951 0852 2093 0000 sts POI_KameraNick,r18 952 0856 00C0 rjmp .L20 953 .L61: 954 0858 8091 0000 lds r24,FromNaviCtrl+19 955 085c 8093 0000 sts NC_Version,r24 956 0860 8091 0000 lds r24,FromNaviCtrl+20 957 0864 8093 0000 sts NC_Version+1,r24 958 0868 8091 0000 lds r24,FromNaviCtrl+21 959 086c 8093 0000 sts NC_Version+2,r24 960 0870 8091 0000 lds r24,FromNaviCtrl+22 961 0874 8093 0000 sts NC_Version+3,r24 962 0878 8091 0000 lds r24,FromNaviCtrl+23 963 087c 8093 0000 sts NC_Version+4,r24 964 0880 8091 0000 lds r24,DebugOut 965 0884 9091 0000 lds r25,FromNaviCtrl+24 966 0888 892B or r24,r25 967 088a 8093 0000 sts DebugOut,r24 968 088e 9091 0000 lds r25,DebugOut+1 969 0892 9370 andi r25,lo8(3) 970 0894 8091 0000 lds r24,FromNaviCtrl+25 971 0898 8C70 andi r24,lo8(12) 972 089a 982B or r25,r24 973 089c 9093 0000 sts DebugOut+1,r25 974 08a0 8091 0000 lds r24,FromNaviCtrl+26 975 08a4 8093 0000 sts NC_ErrorCode,r24 976 08a8 8091 0000 lds r24,FromNaviCtrl+27 977 08ac 8093 0000 sts NC_GPS_ModeCharacter,r24 978 08b0 8091 0000 lds r24,FromNaviCtrl+28 979 08b4 8093 0000 sts FromNaviCtrl_Value+3,r24 980 08b8 8091 0000 lds r24,FromNaviCtrl+29 981 08bc 8093 0000 sts NC_To_FC_Flags,r24 982 08c0 8091 0000 lds r24,FromNaviCtrl+30 983 08c4 8093 0000 sts NC_To_FC_MaxAltitude,r24 984 08c8 00C0 rjmp .L20 985 .L62: 986 08ca 8091 0000 lds r24,FromNaviCtrl+19 987 08ce 8093 0000 sts GPSInfo,r24 988 08d2 8091 0000 lds r24,FromNaviCtrl+20 989 08d6 8093 0000 sts GPSInfo+1,r24 990 08da 8091 0000 lds r24,FromNaviCtrl+21 991 08de 8093 0000 sts GPSInfo+2,r24 992 08e2 8091 0000 lds r24,FromNaviCtrl+22 993 08e6 8093 0000 sts GPSInfo+3,r24 994 08ea 8091 0000 lds r24,FromNaviCtrl+23 995 08ee 9091 0000 lds r25,(FromNaviCtrl+23)+1 996 08f2 9093 0000 sts (GPSInfo+4)+1,r25 997 08f6 8093 0000 sts GPSInfo+4,r24 998 08fa 8091 0000 lds r24,FromNaviCtrl+25 999 08fe 9091 0000 lds r25,(FromNaviCtrl+25)+1 1000 0902 9093 0000 sts (GPSInfo+6)+1,r25 1001 0906 8093 0000 sts GPSInfo+6,r24 1002 090a 8091 0000 lds r24,FromNaviCtrl+27 1003 090e 9927 clr r25 1004 0910 87FD sbrc r24,7 1005 0912 9095 com r25 1006 0914 9093 0000 sts (PPM_in+50)+1,r25 1007 0918 8093 0000 sts PPM_in+50,r24 1008 091c 8091 0000 lds r24,FromNaviCtrl+28 1009 0920 8093 0000 sts FromNC_AltitudeSpeed,r24 1010 0924 8091 0000 lds r24,FromNaviCtrl+29 1011 0928 9091 0000 lds r25,(FromNaviCtrl+29)+1 1012 092c 9C01 movw r18,r24 1013 092e 4427 clr r20 1014 0930 37FD sbrc r19,7 1015 0932 4095 com r20 1016 0934 542F mov r21,r20 1017 0936 DA01 movw r26,r20 1018 0938 C901 movw r24,r18 1019 093a 63E0 ldi r22,3 1020 093c 880F 1: lsl r24 1021 093e 991F rol r25 1022 0940 AA1F rol r26 1023 0942 BB1F rol r27 1024 0944 6A95 dec r22 1025 0946 01F4 brne 1b 1026 0948 820F add r24,r18 1027 094a 931F adc r25,r19 1028 094c A41F adc r26,r20 1029 094e B51F adc r27,r21 1030 0950 820F add r24,r18 1031 0952 931F adc r25,r19 1032 0954 A41F adc r26,r20 1033 0956 B51F adc r27,r21 1034 0958 8093 0000 sts FromNC_AltitudeSetpoint,r24 1035 095c 9093 0000 sts (FromNC_AltitudeSetpoint)+1,r25 1036 0960 A093 0000 sts (FromNC_AltitudeSetpoint)+2,r26 1037 0964 B093 0000 sts (FromNC_AltitudeSetpoint)+3,r27 1038 0968 00C0 rjmp .L20 1039 .L63: 1040 096a 8091 0000 lds r24,FromNaviCtrl+19 1041 096e 8093 0000 sts EarthMagneticField,r24 1042 0972 8091 0000 lds r24,FromNaviCtrl+20 1043 0976 8093 0000 sts EarthMagneticInclination,r24 1044 097a 8091 0000 lds r24,FromNaviCtrl+21 1045 097e 8093 0000 sts EarthMagneticInclinationTheoretic,r24 1046 0982 9091 0000 lds r25,FromNaviCtrl+22 1047 0986 9923 tst r25 1048 0988 01F0 breq .L64 1049 098a 8091 0000 lds r24,SpeakHoTT 1050 098e 8823 tst r24 1051 0990 01F0 breq .L66 1052 0992 8151 subi r24,lo8(-(-17)) 1053 0994 8330 cpi r24,lo8(3) 1054 0996 00F4 brsh .L64 1055 .L66: 1056 0998 9093 0000 sts SpeakHoTT,r25 1057 .L64: 1058 099c 8091 0000 lds r24,FromNaviCtrl+23 1059 09a0 8093 0000 sts NaviData_WaypointIndex,r24 1060 09a4 8091 0000 lds r24,FromNaviCtrl+24 1061 09a8 8093 0000 sts NaviData_WaypointNumber,r24 1062 09ac 8091 0000 lds r24,FromNaviCtrl+25 1063 09b0 9091 0000 lds r25,(FromNaviCtrl+25)+1 1064 09b4 9093 0000 sts (NaviData_TargetDistance)+1,r25 1065 09b8 8093 0000 sts NaviData_TargetDistance,r24 1066 09bc 8091 0000 lds r24,FromNaviCtrl+27 1067 09c0 8093 0000 sts NaviData_TargetHoldTime,r24 1068 09c4 00C0 rjmp .L20 1069 .L67: 1070 09c6 8091 0000 lds r24,EE_Parameter+39 1071 09ca 8630 cpi r24,lo8(6) 1072 09cc 01F4 brne .L20 1073 09ce 0E94 0000 call NC_Fills_HoTT_Telemety 1074 09d2 00C0 rjmp .L20 1075 .L51: 1076 09d4 1092 0000 sts (GPS_Nick)+1,__zero_reg__ 1077 09d8 1092 0000 sts GPS_Nick,__zero_reg__ 1078 09dc 1092 0000 sts (GPS_Roll)+1,__zero_reg__ 1079 09e0 1092 0000 sts GPS_Roll,__zero_reg__ 1080 .L20: 1081 /* epilogue: frame size=0 */ 1082 09e4 1F91 pop r17 1083 09e6 0F91 pop r16 1084 09e8 FF90 pop r15 1085 09ea EF90 pop r14 1086 09ec 0895 ret 1087 /* epilogue end (size=5) */ 1088 /* function UpdateSPI_Buffer size 1115 (1106) */ 1090 .global SPI_StartTransmitPacket 1092 SPI_StartTransmitPacket: 1093 /* prologue: frame size=0 */ 1094 /* prologue end (size=0) */ 1095 09ee 8091 0000 lds r24,SPITransferCompleted 1096 09f2 8823 tst r24 1097 09f4 01F4 brne .+2 1098 09f6 00C0 rjmp .L73 1099 09f8 4598 cbi 40-0x20,5 1100 09fa 80E0 ldi r24,lo8(ToNaviCtrl) 1101 09fc 90E0 ldi r25,hi8(ToNaviCtrl) 1102 09fe 9093 0000 sts (SPI_TX_Buffer)+1,r25 1103 0a02 8093 0000 sts SPI_TX_Buffer,r24 1104 0a06 9091 0000 lds r25,SPI_CommandCounter 1105 0a0a E92F mov r30,r25 1106 0a0c FF27 clr r31 1107 0a0e E050 subi r30,lo8(-(SPI_CommandSequence)) 1108 0a10 F040 sbci r31,hi8(-(SPI_CommandSequence)) 1109 0a12 9F5F subi r25,lo8(-(1)) 1110 0a14 9093 0000 sts SPI_CommandCounter,r25 1111 0a18 8081 ld r24,Z 1112 0a1a 8093 0000 sts ToNaviCtrl+2,r24 1113 0a1e 9B30 cpi r25,lo8(11) 1114 0a20 00F0 brlo .L75 1115 0a22 1092 0000 sts SPI_CommandCounter,__zero_reg__ 1116 .L75: 1117 0a26 1092 0000 sts SPITransferCompleted,__zero_reg__ 1118 0a2a 0E94 0000 call UpdateSPI_Buffer 1119 0a2e 81E0 ldi r24,lo8(1) 1120 0a30 8093 0000 sts SPI_BufferIndex,r24 1121 /* #APP */ 1122 0a34 0000 nop 1123 0a36 0000 nop 1124 0a38 0000 nop 1125 0a3a 0000 nop 1126 0a3c 0000 nop 1127 0a3e 0000 nop 1128 0a40 0000 nop 1129 0a42 0000 nop 1130 0a44 0000 nop 1131 0a46 0000 nop 1132 0a48 0000 nop 1133 0a4a 0000 nop 1134 0a4c 0000 nop 1135 0a4e 0000 nop 1136 0a50 0000 nop 1137 0a52 0000 nop 1138 0a54 0000 nop 1139 0a56 0000 nop 1140 0a58 0000 nop 1141 0a5a 0000 nop 1142 0a5c 0000 nop 1143 0a5e 0000 nop 1144 0a60 0000 nop 1145 0a62 0000 nop 1146 /* #NOAPP */ 1147 0a64 8091 0000 lds r24,ToNaviCtrl 1148 0a68 8093 0000 sts ToNaviCtrl+33,r24 1149 0a6c 8EBD out 78-0x20,r24 1150 .L73: 1151 0a6e 0895 ret 1152 /* epilogue: frame size=0 */ 1153 /* epilogue: noreturn */ 1154 /* epilogue end (size=0) */ 1155 /* function SPI_StartTransmitPacket size 89 (89) */ 1157 .comm GPSInfo,8,1 1158 .comm NC_Version,5,1 1159 .comm FromNaviCtrl_Value,5,1 1160 .comm ToNaviCtrl,34,1 1161 .comm FromNaviCtrl,32,1 1162 .comm SPI_BufferIndex,1,1 1163 .comm SPI_RxBufferIndex,1,1 1164 .comm SPI_Buffer,32,1 1165 .comm SPI_TX_Buffer,2,1 1166 .comm SPITransferCompleted,1,1 1167 .comm SPI_ChkSum,1,1 1168 .comm SPI_RxDataValid,1,1 1169 /* File "spi.c": code 1401 = 0x0579 (1391), prologues 4, epilogues 6 */ DEFINED SYMBOLS *ABS*:00000000 spi.c C:\Temp/ccnBcmNg.s:3 *ABS*:0000003f __SREG__ C:\Temp/ccnBcmNg.s:4 *ABS*:0000003e __SP_H__ C:\Temp/ccnBcmNg.s:5 *ABS*:0000003d __SP_L__ C:\Temp/ccnBcmNg.s:6 *ABS*:00000000 __tmp_reg__ C:\Temp/ccnBcmNg.s:7 *ABS*:00000001 __zero_reg__ C:\Temp/ccnBcmNg.s:15 .bss:00000000 MagVec C:\Temp/ccnBcmNg.s:21 .bss:00000006 POI_KameraNick C:\Temp/ccnBcmNg.s:27 .bss:00000008 NC_To_FC_MaxAltitude C:\Temp/ccnBcmNg.s:33 .bss:00000009 NC_To_FC_Flags C:\Temp/ccnBcmNg.s:39 .bss:0000000a EarthMagneticInclinationTheoretic C:\Temp/ccnBcmNg.s:45 .bss:0000000b EarthMagneticInclination C:\Temp/ccnBcmNg.s:51 .bss:0000000c EarthMagneticField C:\Temp/ccnBcmNg.s:57 .data:00000000 NC_GPS_ModeCharacter C:\Temp/ccnBcmNg.s:64 .bss:0000000d NC_ErrorCode C:\Temp/ccnBcmNg.s:70 .bss:0000000e SPI_CommandCounter C:\Temp/ccnBcmNg.s:76 .data:00000001 SPI_CommandSequence C:\Temp/ccnBcmNg.s:91 .data:0000000c NaviDataOkay C:\Temp/ccnBcmNg.s:98 .bss:0000000f FromNC_Rotate_S C:\Temp/ccnBcmNg.s:104 .data:0000000d FromNC_Rotate_C C:\Temp/ccnBcmNg.s:109 .text:00000000 SPI_MasterInit *COM*:00000001 SPITransferCompleted *COM*:00000022 ToNaviCtrl *COM*:00000005 FromNaviCtrl_Value *COM*:00000001 SPI_RxDataValid .bss:00000010 SPI_RXState.2 C:\Temp/ccnBcmNg.s:139 .bss:00000011 rxchksum.3 C:\Temp/ccnBcmNg.s:143 .text:00000042 SPI_TransmitByte *COM*:00000001 SPI_RxBufferIndex *COM*:00000020 SPI_Buffer *COM*:00000020 FromNaviCtrl *COM*:00000001 SPI_BufferIndex *COM*:00000002 SPI_TX_Buffer C:\Temp/ccnBcmNg.s:140 .bss:00000012 motorindex.0 C:\Temp/ccnBcmNg.s:286 .data:0000000e oldcommand.1 C:\Temp/ccnBcmNg.s:291 .text:00000158 UpdateSPI_Buffer *COM*:00000005 NC_Version *COM*:00000008 GPSInfo C:\Temp/ccnBcmNg.s:1092 .text:000009ee SPI_StartTransmitPacket *COM*:00000001 SPI_ChkSum UNDEFINED SYMBOLS __do_copy_data __do_clear_bss SendSPI EE_Parameter IntegralNick __divmodsi4 IntegralRoll ErsatzKompass GIER_GRAD_FAKTOR AdNeutralGier AdWertGier NaviCntAcc NaviAccNick __divmodhi4 NaviAccRoll __tablejump2__ Parameter_UserParam1 Parameter_UserParam2 Parameter_UserParam3 Parameter_UserParam4 Parameter_UserParam5 Parameter_UserParam6 Parameter_UserParam7 Parameter_UserParam8 FC_StatusFlags GetActiveParamSet FC_StatusFlags2 Capacity UBat BattLowVoltageWarning VarioCharacter Motor __udivmodqi4 JetiBeep HoTT_Waring JETI_CODE ToNC_SpeakHoTT PPM_in Poti WinkelOut HoehenWert SollHoehe SenderOkay DebugOut PlatinenVersion VersionInfo Parameter_GlobalConfig Parameter_ExtraConfig Parameter_ServoNickControl Parameter_ServoRollControl CalculateCompassTimer GPS_Nick GPS_Roll KompassValue beeptime DisableRcOffBeeping KompassFusion GPS_Aid_StickMultiplikator CareFree KompassSollWert FromNC_AltitudeSpeed FromNC_AltitudeSetpoint SpeakHoTT NaviData_WaypointIndex NaviData_WaypointNumber NaviData_TargetDistance NaviData_TargetHoldTime NC_Fills_HoTT_Telemety