0,0 → 1,1243 |
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 84E0 ldi r24,lo8(4) |
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/ccTzWoC5.s:3 *ABS*:0000003f __SREG__ |
C:\Temp/ccTzWoC5.s:4 *ABS*:0000003e __SP_H__ |
C:\Temp/ccTzWoC5.s:5 *ABS*:0000003d __SP_L__ |
C:\Temp/ccTzWoC5.s:6 *ABS*:00000000 __tmp_reg__ |
C:\Temp/ccTzWoC5.s:7 *ABS*:00000001 __zero_reg__ |
C:\Temp/ccTzWoC5.s:15 .bss:00000000 MagVec |
C:\Temp/ccTzWoC5.s:21 .bss:00000006 POI_KameraNick |
C:\Temp/ccTzWoC5.s:27 .bss:00000008 NC_To_FC_MaxAltitude |
C:\Temp/ccTzWoC5.s:33 .bss:00000009 NC_To_FC_Flags |
C:\Temp/ccTzWoC5.s:39 .bss:0000000a EarthMagneticInclinationTheoretic |
C:\Temp/ccTzWoC5.s:45 .bss:0000000b EarthMagneticInclination |
C:\Temp/ccTzWoC5.s:51 .bss:0000000c EarthMagneticField |
C:\Temp/ccTzWoC5.s:57 .data:00000000 NC_GPS_ModeCharacter |
C:\Temp/ccTzWoC5.s:64 .bss:0000000d NC_ErrorCode |
C:\Temp/ccTzWoC5.s:70 .bss:0000000e SPI_CommandCounter |
C:\Temp/ccTzWoC5.s:76 .data:00000001 SPI_CommandSequence |
C:\Temp/ccTzWoC5.s:91 .data:0000000c NaviDataOkay |
C:\Temp/ccTzWoC5.s:98 .bss:0000000f FromNC_Rotate_S |
C:\Temp/ccTzWoC5.s:104 .data:0000000d FromNC_Rotate_C |
C:\Temp/ccTzWoC5.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/ccTzWoC5.s:139 .bss:00000011 rxchksum.3 |
C:\Temp/ccTzWoC5.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/ccTzWoC5.s:140 .bss:00000012 motorindex.0 |
C:\Temp/ccTzWoC5.s:286 .data:0000000e oldcommand.1 |
C:\Temp/ccTzWoC5.s:291 .text:00000158 UpdateSPI_Buffer |
*COM*:00000005 NC_Version |
*COM*:00000008 GPSInfo |
C:\Temp/ccTzWoC5.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 |