Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 1788 → Rev 1789

/branches/V0.80g-Arthur-P1/spi.lst
1,951 → 1,961
1 .file "spi.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __CCP__ = 0x34
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .global NC_ErrorCode
11 .global NC_ErrorCode
12 .section .bss
15 NC_ErrorCode:
16 0000 00 .skip 1,0
17 .global SPI_CommandCounter
18 .global SPI_CommandCounter
21 SPI_CommandCounter:
22 0001 00 .skip 1,0
23 .global SPI_CommandSequence
24 .data
27 SPI_CommandSequence:
28 0000 0B .byte 11
29 0001 0A .byte 10
30 0002 0D .byte 13
31 0003 0B .byte 11
32 0004 0C .byte 12
33 0005 0E .byte 14
34 0006 0B .byte 11
35 0007 0F .byte 15
36 0008 10 .byte 16
37 .global NaviDataOkay
40 NaviDataOkay:
41 0009 FA .byte -6
42 .global FromNC_Rotate_S
43 .global FromNC_Rotate_S
44 .section .bss
47 FromNC_Rotate_S:
48 0002 00 .skip 1,0
49 .global FromNC_Rotate_C
50 .data
53 FromNC_Rotate_C:
54 000a 20 .byte 32
55 .text
56 .global SPI_MasterInit
58 SPI_MasterInit:
59 /* prologue: frame size=0 */
60 /* prologue end (size=0) */
61 0000 84B1 in r24,36-0x20
62 0002 806A ori r24,lo8(-96)
63 0004 84B9 out 36-0x20,r24
64 0006 3D9A sbi 39-0x20,5
65 0008 82E5 ldi r24,lo8(82)
66 000a 8CBD out 76-0x20,r24
67 000c 1DBC out 77-0x20,__zero_reg__
68 000e 459A sbi 40-0x20,5
69 0010 81E0 ldi r24,lo8(1)
70 0012 8093 0000 sts SPITransferCompleted,r24
71 0016 8AEA ldi r24,lo8(-86)
72 0018 8093 0000 sts ToNaviCtrl,r24
73 001c 83E8 ldi r24,lo8(-125)
74 001e 8093 0000 sts ToNaviCtrl+1,r24
75 0022 8AE0 ldi r24,lo8(10)
76 0024 8093 0000 sts ToNaviCtrl+2,r24
77 0028 1092 0000 sts (ToNaviCtrl+3)+1,__zero_reg__
78 002c 1092 0000 sts ToNaviCtrl+3,__zero_reg__
79 0030 1092 0000 sts (ToNaviCtrl+5)+1,__zero_reg__
80 0034 1092 0000 sts ToNaviCtrl+5,__zero_reg__
81 0038 1092 0000 sts FromNaviCtrl_Value+3,__zero_reg__
82 003c 1092 0000 sts SPI_RxDataValid,__zero_reg__
83 /* epilogue: frame size=0 */
84 0040 0895 ret
85 /* epilogue end (size=1) */
86 /* function SPI_MasterInit size 33 (32) */
88 .lcomm SPI_RXState.0,1
89 .lcomm rxchksum.1,1
90 .global SPI_TransmitByte
92 SPI_TransmitByte:
93 /* prologue: frame size=0 */
94 /* prologue end (size=0) */
95 0042 3091 0000 lds r19,SPITransferCompleted
96 0046 3323 tst r19
97 0048 09F0 breq .+2
98 004a 85C0 rjmp .L2
99 004c 0DB4 in __tmp_reg__,77-0x20
100 004e 07FE sbrs __tmp_reg__,7
101 0050 82C0 rjmp .L2
102 0052 84E0 ldi r24,lo8(4)
103 0054 8093 0000 sts SendSPI,r24
104 0058 459A sbi 40-0x20,5
105 005a 2EB5 in r18,78-0x20
106 005c 8091 0000 lds r24,SPI_RXState.0
107 0060 9927 clr r25
108 0062 8130 cpi r24,1
109 0064 9105 cpc r25,__zero_reg__
110 0066 89F0 breq .L8
111 0068 8230 cpi r24,2
112 006a 9105 cpc r25,__zero_reg__
113 006c 1CF4 brge .L16
114 006e 892B or r24,r25
115 0070 21F0 breq .L6
116 0072 3EC0 rjmp .L5
117 .L16:
118 0074 0297 sbiw r24,2
119 0076 B9F0 breq .L11
120 0078 3BC0 rjmp .L5
121 .L6:
122 007a 3093 0000 sts SPI_RxBufferIndex,r19
123 007e 2093 0000 sts rxchksum.1,r18
124 0082 2138 cpi r18,lo8(-127)
125 0084 A9F5 brne .L5
126 0086 81E0 ldi r24,lo8(1)
127 0088 08C0 rjmp .L19
128 .L8:
129 008a 2535 cpi r18,lo8(85)
130 008c 49F4 brne .L9
131 008e 8091 0000 lds r24,rxchksum.1
132 0092 820F add r24,r18
133 0094 8093 0000 sts rxchksum.1,r24
134 0098 82E0 ldi r24,lo8(2)
135 .L19:
136 009a 8093 0000 sts SPI_RXState.0,r24
137 009e 28C0 rjmp .L5
138 .L9:
139 00a0 3093 0000 sts SPI_RXState.0,r19
140 00a4 25C0 rjmp .L5
141 .L11:
142 00a6 8091 0000 lds r24,SPI_RxBufferIndex
143 00aa E82F mov r30,r24
144 00ac FF27 clr r31
145 00ae E050 subi r30,lo8(-(SPI_Buffer))
146 00b0 F040 sbci r31,hi8(-(SPI_Buffer))
147 00b2 2083 st Z,r18
148 00b4 8F5F subi r24,lo8(-(1))
149 00b6 8093 0000 sts SPI_RxBufferIndex,r24
150 00ba 9091 0000 lds r25,rxchksum.1
151 00be 8A31 cpi r24,lo8(26)
152 00c0 A0F0 brlo .L12
153 00c2 2917 cp r18,r25
154 00c4 69F4 brne .L13
155 00c6 8AE1 ldi r24,lo8(26)
156 00c8 A0E0 ldi r26,lo8(SPI_Buffer)
157 00ca B0E0 ldi r27,hi8(SPI_Buffer)
158 00cc E0E0 ldi r30,lo8(FromNaviCtrl)
159 00ce F0E0 ldi r31,hi8(FromNaviCtrl)
160 00d0 0D90 ld __tmp_reg__,X+
161 00d2 0192 st Z+,__tmp_reg__
162 00d4 8A95 dec r24
163 00d6 E1F7 brne .-8
164 00d8 81E0 ldi r24,lo8(1)
165 00da 8093 0000 sts SPI_RxDataValid,r24
166 00de 02C0 rjmp .L14
167 .L13:
168 00e0 3093 0000 sts SPI_RxDataValid,r19
169 .L14:
170 00e4 1092 0000 sts SPI_RXState.0,__zero_reg__
171 00e8 03C0 rjmp .L5
172 .L12:
173 00ea 920F add r25,r18
174 00ec 9093 0000 sts rxchksum.1,r25
175 .L5:
176 00f0 2091 0000 lds r18,SPI_BufferIndex
177 00f4 2032 cpi r18,lo8(32)
178 00f6 08F0 brlo .+2
179 00f8 28C0 rjmp .L17
180 00fa 4598 cbi 40-0x20,5
181 /* #APP */
182 00fc 0000 nop
183 00fe 0000 nop
184 0100 0000 nop
185 0102 0000 nop
186 0104 0000 nop
187 0106 0000 nop
188 0108 0000 nop
189 010a 0000 nop
190 010c 0000 nop
191 010e 0000 nop
192 0110 0000 nop
193 0112 0000 nop
194 0114 0000 nop
195 0116 0000 nop
196 0118 0000 nop
197 011a 0000 nop
198 011c 0000 nop
199 011e 0000 nop
200 0120 0000 nop
201 0122 0000 nop
202 0124 0000 nop
203 0126 0000 nop
204 0128 0000 nop
205 012a 0000 nop
206 /* #NOAPP */
207 012c E091 0000 lds r30,SPI_TX_Buffer
208 0130 F091 0000 lds r31,(SPI_TX_Buffer)+1
209 0134 E20F add r30,r18
210 0136 F11D adc r31,__zero_reg__
211 0138 8081 ld r24,Z
212 013a 8EBD out 78-0x20,r24
213 013c 8091 0000 lds r24,ToNaviCtrl+31
214 0140 9081 ld r25,Z
215 0142 890F add r24,r25
216 0144 8093 0000 sts ToNaviCtrl+31,r24
217 0148 03C0 rjmp .L18
218 .L17:
219 014a 81E0 ldi r24,lo8(1)
220 014c 8093 0000 sts SPITransferCompleted,r24
221 .L18:
222 0150 2F5F subi r18,lo8(-(1))
223 0152 2093 0000 sts SPI_BufferIndex,r18
224 .L2:
225 0156 0895 ret
226 /* epilogue: frame size=0 */
227 /* epilogue: noreturn */
228 /* epilogue end (size=0) */
229 /* function SPI_TransmitByte size 164 (164) */
231 .global UpdateSPI_Buffer
233 UpdateSPI_Buffer:
234 /* prologue: frame size=0 */
235 0158 EF92 push r14
236 015a FF92 push r15
237 015c 0F93 push r16
238 015e 1F93 push r17
239 /* prologue end (size=4) */
240 0160 8091 0000 lds r24,EE_Parameter+28
241 0164 9927 clr r25
242 0166 880F lsl r24
243 0168 991F rol r25
244 016a 880F lsl r24
245 016c 991F rol r25
246 016e 7C01 movw r14,r24
247 0170 0027 clr r16
248 0172 F7FC sbrc r15,7
249 0174 0095 com r16
250 0176 102F mov r17,r16
251 0178 8091 0000 lds r24,IntegralNick
252 017c 9091 0000 lds r25,(IntegralNick)+1
253 0180 A091 0000 lds r26,(IntegralNick)+2
254 0184 B091 0000 lds r27,(IntegralNick)+3
255 0188 BC01 movw r22,r24
256 018a CD01 movw r24,r26
257 018c A801 movw r20,r16
258 018e 9701 movw r18,r14
259 0190 0E94 0000 call __divmodsi4
260 0194 3093 0000 sts (ToNaviCtrl+3)+1,r19
261 0198 2093 0000 sts ToNaviCtrl+3,r18
262 019c 8091 0000 lds r24,IntegralRoll
263 01a0 9091 0000 lds r25,(IntegralRoll)+1
264 01a4 A091 0000 lds r26,(IntegralRoll)+2
265 01a8 B091 0000 lds r27,(IntegralRoll)+3
266 01ac BC01 movw r22,r24
267 01ae CD01 movw r24,r26
268 01b0 A801 movw r20,r16
269 01b2 9701 movw r18,r14
270 01b4 0E94 0000 call __divmodsi4
271 01b8 3093 0000 sts (ToNaviCtrl+5)+1,r19
272 01bc 2093 0000 sts ToNaviCtrl+5,r18
273 01c0 2091 0000 lds r18,ErsatzKompass
274 01c4 3091 0000 lds r19,(ErsatzKompass)+1
275 01c8 4091 0000 lds r20,(ErsatzKompass)+2
276 01cc 5091 0000 lds r21,(ErsatzKompass)+3
277 01d0 DA01 movw r26,r20
278 01d2 C901 movw r24,r18
279 01d4 E3E0 ldi r30,3
280 01d6 880F 1: lsl r24
281 01d8 991F rol r25
282 01da AA1F rol r26
283 01dc BB1F rol r27
284 01de EA95 dec r30
285 01e0 D1F7 brne 1b
286 01e2 820F add r24,r18
287 01e4 931F adc r25,r19
288 01e6 A41F adc r26,r20
289 01e8 B51F adc r27,r21
290 01ea 820F add r24,r18
291 01ec 931F adc r25,r19
292 01ee A41F adc r26,r20
293 01f0 B51F adc r27,r21
294 01f2 2091 0000 lds r18,GIER_GRAD_FAKTOR
295 01f6 3091 0000 lds r19,(GIER_GRAD_FAKTOR)+1
296 01fa 4091 0000 lds r20,(GIER_GRAD_FAKTOR)+2
297 01fe 5091 0000 lds r21,(GIER_GRAD_FAKTOR)+3
298 0202 BC01 movw r22,r24
299 0204 CD01 movw r24,r26
300 0206 0E94 0000 call __divmodsi4
301 020a 3093 0000 sts (ToNaviCtrl+11)+1,r19
302 020e 2093 0000 sts ToNaviCtrl+11,r18
303 0212 8091 0000 lds r24,AdNeutralGier
304 0216 9091 0000 lds r25,(AdNeutralGier)+1
305 021a 2091 0000 lds r18,AdWertGier
306 021e 3091 0000 lds r19,(AdWertGier)+1
307 0222 821B sub r24,r18
308 0224 930B sbc r25,r19
309 0226 9093 0000 sts (ToNaviCtrl+17)+1,r25
310 022a 8093 0000 sts ToNaviCtrl+17,r24
311 022e E091 0000 lds r30,NaviCntAcc
312 0232 F091 0000 lds r31,(NaviCntAcc)+1
313 0236 8091 0000 lds r24,NaviAccNick
314 023a 9091 0000 lds r25,(NaviAccNick)+1
315 023e BF01 movw r22,r30
316 0240 0E94 0000 call __divmodhi4
317 0244 CB01 movw r24,r22
318 0246 9B01 movw r18,r22
319 0248 220F lsl r18
320 024a 331F rol r19
321 024c 220F lsl r18
322 024e 331F rol r19
323 0250 280F add r18,r24
324 0252 391F adc r19,r25
325 0254 280F add r18,r24
326 0256 391F adc r19,r25
327 0258 37FF sbrs r19,7
328 025a 02C0 rjmp .L21
329 025c 2D5F subi r18,lo8(-(3))
330 025e 3F4F sbci r19,hi8(-(3))
331 .L21:
332 0260 3595 asr r19
333 0262 2795 ror r18
334 0264 3595 asr r19
335 0266 2795 ror r18
336 0268 3093 0000 sts (ToNaviCtrl+7)+1,r19
337 026c 2093 0000 sts ToNaviCtrl+7,r18
338 0270 8091 0000 lds r24,NaviAccRoll
339 0274 9091 0000 lds r25,(NaviAccRoll)+1
340 0278 BF01 movw r22,r30
341 027a 0E94 0000 call __divmodhi4
342 027e 9B01 movw r18,r22
343 0280 220F lsl r18
344 0282 331F rol r19
345 0284 220F lsl r18
346 0286 331F rol r19
347 0288 260F add r18,r22
348 028a 371F adc r19,r23
349 028c 260F add r18,r22
350 028e 371F adc r19,r23
351 0290 37FF sbrs r19,7
352 0292 02C0 rjmp .L22
353 0294 2D5F subi r18,lo8(-(3))
354 0296 3F4F sbci r19,hi8(-(3))
355 .L22:
356 0298 3595 asr r19
357 029a 2795 ror r18
358 029c 3595 asr r19
359 029e 2795 ror r18
360 02a0 3093 0000 sts (ToNaviCtrl+9)+1,r19
361 02a4 2093 0000 sts ToNaviCtrl+9,r18
362 02a8 1092 0000 sts (NaviCntAcc)+1,__zero_reg__
363 02ac 1092 0000 sts NaviCntAcc,__zero_reg__
364 02b0 1092 0000 sts (NaviAccNick)+1,__zero_reg__
365 02b4 1092 0000 sts NaviAccNick,__zero_reg__
366 02b8 1092 0000 sts (NaviAccRoll)+1,__zero_reg__
367 02bc 1092 0000 sts NaviAccRoll,__zero_reg__
368 02c0 8091 0000 lds r24,ToNaviCtrl+2
369 02c4 9927 clr r25
370 02c6 8D30 cpi r24,13
371 02c8 9105 cpc r25,__zero_reg__
372 02ca 09F4 brne .+2
373 02cc 66C0 rjmp .L26
374 02ce 8E30 cpi r24,14
375 02d0 9105 cpc r25,__zero_reg__
376 02d2 5CF4 brge .L46
377 02d4 8B30 cpi r24,11
378 02d6 9105 cpc r25,__zero_reg__
379 02d8 09F4 brne .+2
380 02da 8EC0 rjmp .L27
381 02dc 8C30 cpi r24,12
382 02de 9105 cpc r25,__zero_reg__
383 02e0 0CF0 brlt .+2
384 02e2 0FC1 rjmp .L40
385 02e4 0A97 sbiw r24,10
386 02e6 61F0 breq .L24
387 02e8 A8C1 rjmp .L23
388 .L46:
389 02ea 8F30 cpi r24,15
390 02ec 9105 cpc r25,__zero_reg__
391 02ee 09F4 brne .+2
392 02f0 7CC1 rjmp .L45
393 02f2 8F30 cpi r24,15
394 02f4 9105 cpc r25,__zero_reg__
395 02f6 0CF4 brge .+2
396 02f8 5CC1 rjmp .L44
397 02fa 4097 sbiw r24,16
398 02fc 99F1 breq .L25
399 02fe 9DC1 rjmp .L23
400 .L24:
401 0300 8091 0000 lds r24,Parameter_UserParam1
402 0304 8093 0000 sts ToNaviCtrl+19,r24
403 0308 8091 0000 lds r24,Parameter_UserParam2
404 030c 8093 0000 sts ToNaviCtrl+20,r24
405 0310 8091 0000 lds r24,Parameter_UserParam3
406 0314 8093 0000 sts ToNaviCtrl+21,r24
407 0318 8091 0000 lds r24,Parameter_UserParam4
408 031c 8093 0000 sts ToNaviCtrl+22,r24
409 0320 8091 0000 lds r24,Parameter_UserParam5
410 0324 8093 0000 sts ToNaviCtrl+23,r24
411 0328 8091 0000 lds r24,Parameter_UserParam6
412 032c 8093 0000 sts ToNaviCtrl+24,r24
413 0330 8091 0000 lds r24,Parameter_UserParam7
414 0334 8093 0000 sts ToNaviCtrl+25,r24
415 0338 8091 0000 lds r24,Parameter_UserParam8
416 033c 8093 0000 sts ToNaviCtrl+26,r24
417 0340 8091 0000 lds r24,FCFlags
418 0344 8093 0000 sts ToNaviCtrl+27,r24
419 0348 8091 0000 lds r24,FCFlags
420 034c 837F andi r24,lo8(-13)
421 034e 8093 0000 sts FCFlags,r24
422 0352 0E94 0000 call GetActiveParamSet
423 0356 8093 0000 sts ToNaviCtrl+28,r24
424 035a 8091 0000 lds r24,ControlHeading
425 035e 8093 0000 sts ToNaviCtrl+29,r24
426 0362 6BC1 rjmp .L23
427 .L25:
428 0364 8091 0000 lds r24,Capacity
429 0368 9091 0000 lds r25,(Capacity)+1
430 036c 9093 0000 sts (ToNaviCtrl+19)+1,r25
431 0370 8093 0000 sts ToNaviCtrl+19,r24
432 0374 8091 0000 lds r24,Capacity+4
433 0378 9091 0000 lds r25,(Capacity+4)+1
434 037c 9093 0000 sts (ToNaviCtrl+21)+1,r25
435 0380 8093 0000 sts ToNaviCtrl+21,r24
436 0384 8091 0000 lds r24,UBat
437 0388 9091 0000 lds r25,(UBat)+1
438 038c 8093 0000 sts ToNaviCtrl+23,r24
439 0390 8091 0000 lds r24,BattLowVoltageWarning
440 0394 8093 0000 sts ToNaviCtrl+24,r24
441 0398 50C1 rjmp .L23
442 .L26:
443 039a 8091 0000 lds r24,EE_Parameter+78
444 039e 8093 0000 sts ToNaviCtrl+19,r24
445 03a2 8091 0000 lds r24,EE_Parameter+79
446 03a6 8093 0000 sts ToNaviCtrl+20,r24
447 03aa 8091 0000 lds r24,EE_Parameter+80
448 03ae 8093 0000 sts ToNaviCtrl+21,r24
449 03b2 8091 0000 lds r24,EE_Parameter+81
450 03b6 8093 0000 sts ToNaviCtrl+22,r24
451 03ba 8091 0000 lds r24,EE_Parameter+82
452 03be 8093 0000 sts ToNaviCtrl+23,r24
453 03c2 8091 0000 lds r24,EE_Parameter+86
454 03c6 8093 0000 sts ToNaviCtrl+24,r24
455 03ca 8091 0000 lds r24,EE_Parameter+87
456 03ce 8093 0000 sts ToNaviCtrl+25,r24
457 03d2 8091 0000 lds r24,EE_Parameter+88
458 03d6 8093 0000 sts ToNaviCtrl+26,r24
459 03da 8091 0000 lds r24,EE_Parameter+91
460 03de 8093 0000 sts ToNaviCtrl+27,r24
461 03e2 8091 0000 lds r24,EE_Parameter+89
462 03e6 8093 0000 sts ToNaviCtrl+28,r24
463 03ea 8091 0000 lds r24,EE_Parameter+90
464 03ee 8093 0000 sts ToNaviCtrl+29,r24
465 03f2 8091 0000 lds r24,EE_Parameter+92
466 03f6 DAC0 rjmp .L58
467 .L27:
468 /* #APP */
469 03f8 F894 cli
470 /* #NOAPP */
471 03fa 8091 0000 lds r24,EE_Parameter+3
472 03fe E82F mov r30,r24
473 0400 FF27 clr r31
474 0402 EE0F add r30,r30
475 0404 FF1F adc r31,r31
476 0406 E050 subi r30,lo8(-(PPM_in))
477 0408 F040 sbci r31,hi8(-(PPM_in))
478 040a 0190 ld __tmp_reg__,Z+
479 040c F081 ld r31,Z
480 040e E02D mov r30,__tmp_reg__
481 0410 E038 cpi r30,128
482 0412 F105 cpc r31,__zero_reg__
483 0414 1CF0 brlt .L28
484 0416 EFE7 ldi r30,lo8(127)
485 0418 F0E0 ldi r31,hi8(127)
486 041a 06C0 rjmp .L29
487 .L28:
488 041c 2FEF ldi r18,hi8(-127)
489 041e E138 cpi r30,lo8(-127)
490 0420 F207 cpc r31,r18
491 0422 14F4 brge .L29
492 0424 E1E8 ldi r30,lo8(-127)
493 0426 FFEF ldi r31,hi8(-127)
494 .L29:
495 0428 E093 0000 sts ToNaviCtrl+19,r30
496 042c 8091 0000 lds r24,EE_Parameter+4
497 0430 E82F mov r30,r24
498 0432 FF27 clr r31
499 0434 EE0F add r30,r30
500 0436 FF1F adc r31,r31
501 0438 E050 subi r30,lo8(-(PPM_in))
502 043a F040 sbci r31,hi8(-(PPM_in))
503 043c 0190 ld __tmp_reg__,Z+
504 043e F081 ld r31,Z
505 0440 E02D mov r30,__tmp_reg__
506 0442 E038 cpi r30,128
507 0444 F105 cpc r31,__zero_reg__
508 0446 1CF0 brlt .L31
509 0448 EFE7 ldi r30,lo8(127)
510 044a F0E0 ldi r31,hi8(127)
511 044c 06C0 rjmp .L32
512 .L31:
513 044e 6FEF ldi r22,hi8(-127)
514 0450 E138 cpi r30,lo8(-127)
515 0452 F607 cpc r31,r22
516 0454 14F4 brge .L32
517 0456 E1E8 ldi r30,lo8(-127)
518 0458 FFEF ldi r31,hi8(-127)
519 .L32:
520 045a E093 0000 sts ToNaviCtrl+20,r30
521 045e 8091 0000 lds r24,EE_Parameter+2
522 0462 E82F mov r30,r24
523 0464 FF27 clr r31
524 0466 EE0F add r30,r30
525 0468 FF1F adc r31,r31
526 046a E050 subi r30,lo8(-(PPM_in))
527 046c F040 sbci r31,hi8(-(PPM_in))
528 046e 0190 ld __tmp_reg__,Z+
529 0470 F081 ld r31,Z
530 0472 E02D mov r30,__tmp_reg__
531 0474 E038 cpi r30,128
532 0476 F105 cpc r31,__zero_reg__
533 0478 1CF0 brlt .L34
534 047a EFE7 ldi r30,lo8(127)
535 047c F0E0 ldi r31,hi8(127)
536 047e 06C0 rjmp .L35
537 .L34:
538 0480 8FEF ldi r24,hi8(-127)
539 0482 E138 cpi r30,lo8(-127)
540 0484 F807 cpc r31,r24
541 0486 14F4 brge .L35
542 0488 E1E8 ldi r30,lo8(-127)
543 048a FFEF ldi r31,hi8(-127)
544 .L35:
545 048c E093 0000 sts ToNaviCtrl+21,r30
546 0490 8091 0000 lds r24,EE_Parameter+1
547 0494 E82F mov r30,r24
548 0496 FF27 clr r31
549 0498 EE0F add r30,r30
550 049a FF1F adc r31,r31
551 049c E050 subi r30,lo8(-(PPM_in))
552 049e F040 sbci r31,hi8(-(PPM_in))
553 04a0 0190 ld __tmp_reg__,Z+
554 04a2 F081 ld r31,Z
555 04a4 E02D mov r30,__tmp_reg__
556 04a6 E038 cpi r30,128
557 04a8 F105 cpc r31,__zero_reg__
558 04aa 1CF0 brlt .L37
559 04ac EFE7 ldi r30,lo8(127)
560 04ae F0E0 ldi r31,hi8(127)
561 04b0 06C0 rjmp .L38
562 .L37:
563 04b2 2FEF ldi r18,hi8(-127)
564 04b4 E138 cpi r30,lo8(-127)
565 04b6 F207 cpc r31,r18
566 04b8 14F4 brge .L38
567 04ba E1E8 ldi r30,lo8(-127)
568 04bc FFEF ldi r31,hi8(-127)
569 .L38:
570 /* #APP */
571 04be 7894 sei
572 /* #NOAPP */
573 04c0 E093 0000 sts ToNaviCtrl+22,r30
574 04c4 8091 0000 lds r24,Poti
575 04c8 8093 0000 sts ToNaviCtrl+23,r24
576 04cc 8091 0000 lds r24,Poti+1
577 04d0 8093 0000 sts ToNaviCtrl+24,r24
578 04d4 8091 0000 lds r24,Poti+2
579 04d8 8093 0000 sts ToNaviCtrl+25,r24
580 04dc 8091 0000 lds r24,Poti+3
581 04e0 8093 0000 sts ToNaviCtrl+26,r24
582 04e4 8091 0000 lds r24,Poti+4
583 04e8 8093 0000 sts ToNaviCtrl+27,r24
584 04ec 8091 0000 lds r24,Poti+5
585 04f0 8093 0000 sts ToNaviCtrl+28,r24
586 04f4 8091 0000 lds r24,Poti+6
587 04f8 8093 0000 sts ToNaviCtrl+29,r24
588 04fc 8091 0000 lds r24,Poti+7
589 0500 55C0 rjmp .L58
590 .L40:
591 0502 8091 0000 lds r24,WinkelOut+6
592 0506 8630 cpi r24,lo8(6)
593 0508 18F0 brlo .L41
594 050a 1092 0000 sts WinkelOut+6,__zero_reg__
595 050e 85E0 ldi r24,lo8(5)
596 .L41:
597 0510 8093 0000 sts ToNaviCtrl+19,r24
598 0514 8091 0000 lds r24,EE_Parameter+93
599 0518 8093 0000 sts ToNaviCtrl+20,r24
600 051c 8091 0000 lds r24,HoehenWert
601 0520 9091 0000 lds r25,(HoehenWert)+1
602 0524 A091 0000 lds r26,(HoehenWert)+2
603 0528 B091 0000 lds r27,(HoehenWert)+3
604 052c BC01 movw r22,r24
605 052e CD01 movw r24,r26
606 0530 25E0 ldi r18,lo8(5)
607 0532 30E0 ldi r19,hi8(5)
608 0534 40E0 ldi r20,hlo8(5)
609 0536 50E0 ldi r21,hhi8(5)
610 0538 0E94 0000 call __divmodsi4
611 053c 3093 0000 sts (ToNaviCtrl+21)+1,r19
612 0540 2093 0000 sts ToNaviCtrl+21,r18
613 0544 8091 0000 lds r24,SollHoehe
614 0548 9091 0000 lds r25,(SollHoehe)+1
615 054c A091 0000 lds r26,(SollHoehe)+2
616 0550 B091 0000 lds r27,(SollHoehe)+3
617 0554 BC01 movw r22,r24
618 0556 CD01 movw r24,r26
619 0558 25E0 ldi r18,lo8(5)
620 055a 30E0 ldi r19,hi8(5)
621 055c 40E0 ldi r20,hlo8(5)
622 055e 50E0 ldi r21,hhi8(5)
623 0560 0E94 0000 call __divmodsi4
624 0564 3093 0000 sts (ToNaviCtrl+23)+1,r19
625 0568 2093 0000 sts ToNaviCtrl+23,r18
626 056c 8091 0000 lds r24,EE_Parameter+83
627 0570 8093 0000 sts ToNaviCtrl+25,r24
628 0574 8091 0000 lds r24,EE_Parameter+84
629 0578 8093 0000 sts ToNaviCtrl+26,r24
630 057c 8091 0000 lds r24,EE_Parameter+85
631 0580 8093 0000 sts ToNaviCtrl+27,r24
632 0584 8091 0000 lds r24,SenderOkay
633 0588 8093 0000 sts ToNaviCtrl+28,r24
634 058c 8091 0000 lds r24,PPM_in
635 0590 9091 0000 lds r25,(PPM_in)+1
636 0594 8093 0000 sts ToNaviCtrl+29,r24
637 0598 8091 0000 lds r24,DebugOut+16
638 059c 9091 0000 lds r25,(DebugOut+16)+1
639 05a0 97FD sbrc r25,7
640 05a2 0396 adiw r24,3
641 .L43:
642 05a4 9595 asr r25
643 05a6 8795 ror r24
644 05a8 9595 asr r25
645 05aa 8795 ror r24
646 .L58:
647 05ac 8093 0000 sts ToNaviCtrl+30,r24
648 05b0 44C0 rjmp .L23
649 .L44:
650 05b2 1092 0000 sts ToNaviCtrl+19,__zero_reg__
651 05b6 80E5 ldi r24,lo8(80)
652 05b8 8093 0000 sts ToNaviCtrl+20,r24
653 05bc 86E0 ldi r24,lo8(6)
654 05be 8093 0000 sts ToNaviCtrl+21,r24
655 05c2 8EE0 ldi r24,lo8(14)
656 05c4 8093 0000 sts ToNaviCtrl+22,r24
657 05c8 8091 0000 lds r24,PlatinenVersion
658 05cc 8093 0000 sts ToNaviCtrl+23,r24
659 05d0 8091 0000 lds r24,VersionInfo+5
660 05d4 8093 0000 sts ToNaviCtrl+24,r24
661 05d8 8091 0000 lds r24,VersionInfo+6
662 05dc 8093 0000 sts ToNaviCtrl+25,r24
663 05e0 8091 0000 lds r24,VersionInfo+7
664 05e4 8093 0000 sts ToNaviCtrl+26,r24
665 05e8 28C0 rjmp .L23
666 .L45:
667 05ea 8091 0000 lds r24,EE_Parameter+53
668 05ee 8093 0000 sts ToNaviCtrl+19,r24
669 05f2 8091 0000 lds r24,EE_Parameter+98
670 05f6 8093 0000 sts ToNaviCtrl+20,r24
671 05fa 8091 0000 lds r24,Parameter_ServoNickControl
672 05fe 8093 0000 sts ToNaviCtrl+21,r24
673 0602 8091 0000 lds r24,EE_Parameter+46
674 0606 8093 0000 sts ToNaviCtrl+22,r24
675 060a 8091 0000 lds r24,EE_Parameter+47
676 060e 8093 0000 sts ToNaviCtrl+23,r24
677 0612 8091 0000 lds r24,EE_Parameter+48
678 0616 8093 0000 sts ToNaviCtrl+24,r24
679 061a 8091 0000 lds r24,Parameter_ServoRollControl
680 061e 8093 0000 sts ToNaviCtrl+25,r24
681 0622 8091 0000 lds r24,EE_Parameter+50
682 0626 8093 0000 sts ToNaviCtrl+26,r24
683 062a 8091 0000 lds r24,EE_Parameter+51
684 062e 8093 0000 sts ToNaviCtrl+27,r24
685 0632 8091 0000 lds r24,EE_Parameter+52
686 0636 8093 0000 sts ToNaviCtrl+28,r24
687 .L23:
688 063a 8091 0000 lds r24,SPI_RxDataValid
689 063e 8823 tst r24
690 0640 09F4 brne .+2
691 0642 CFC0 rjmp .L47
692 0644 8AEF ldi r24,lo8(-6)
693 0646 8093 0000 sts NaviDataOkay,r24
694 064a 4091 0000 lds r20,FromNaviCtrl+1
695 064e 5091 0000 lds r21,(FromNaviCtrl+1)+1
696 0652 CA01 movw r24,r20
697 0654 8150 subi r24,lo8(-(511))
698 0656 9E4F sbci r25,hi8(-(511))
699 0658 8F5F subi r24,lo8(1023)
700 065a 9340 sbci r25,hi8(1023)
701 065c B0F4 brsh .L48
702 065e 2091 0000 lds r18,FromNaviCtrl+3
703 0662 3091 0000 lds r19,(FromNaviCtrl+3)+1
704 0666 C901 movw r24,r18
705 0668 8150 subi r24,lo8(-(511))
706 066a 9E4F sbci r25,hi8(-(511))
707 066c 8F5F subi r24,lo8(1023)
708 066e 9340 sbci r25,hi8(1023)
709 0670 60F4 brsh .L48
710 0672 8091 0000 lds r24,EE_Parameter+13
711 0676 85FF sbrs r24,5
712 0678 08C0 rjmp .L48
713 067a 5093 0000 sts (GPS_Nick)+1,r21
714 067e 4093 0000 sts GPS_Nick,r20
715 0682 3093 0000 sts (GPS_Roll)+1,r19
716 0686 2093 0000 sts GPS_Roll,r18
717 .L48:
718 068a 8091 0000 lds r24,FromNaviCtrl+7
719 068e 9091 0000 lds r25,(FromNaviCtrl+7)+1
720 0692 21E0 ldi r18,hi8(361)
721 0694 8936 cpi r24,lo8(361)
722 0696 9207 cpc r25,r18
723 0698 24F4 brge .L49
724 069a 9093 0000 sts (KompassValue)+1,r25
725 069e 8093 0000 sts KompassValue,r24
726 .L49:
727 06a2 8091 0000 lds r24,KompassValue
728 06a6 9091 0000 lds r25,(KompassValue)+1
729 06aa 2091 0000 lds r18,KompassStartwert
730 06ae 3091 0000 lds r19,(KompassStartwert)+1
731 06b2 821B sub r24,r18
732 06b4 930B sbc r25,r19
733 06b6 845E subi r24,lo8(-(540))
734 06b8 9D4F sbci r25,hi8(-(540))
735 06ba 68E6 ldi r22,lo8(360)
736 06bc 71E0 ldi r23,hi8(360)
737 06be 0E94 0000 call __divmodhi4
738 06c2 845B subi r24,lo8(-(-180))
739 06c4 9040 sbci r25,hi8(-(-180))
740 06c6 9093 0000 sts (KompassRichtung)+1,r25
741 06ca 8093 0000 sts KompassRichtung,r24
742 06ce 2091 0000 lds r18,FromNaviCtrl+11
743 06d2 3091 0000 lds r19,(FromNaviCtrl+11)+1
744 06d6 8091 0000 lds r24,beeptime
745 06da 9091 0000 lds r25,(beeptime)+1
746 06de 8217 cp r24,r18
747 06e0 9307 cpc r25,r19
748 06e2 40F4 brsh .L50
749 06e4 8091 0000 lds r24,WinkelOut+6
750 06e8 8823 tst r24
751 06ea 21F4 brne .L50
752 06ec 3093 0000 sts (beeptime)+1,r19
753 06f0 2093 0000 sts beeptime,r18
754 .L50:
755 06f4 8091 0000 lds r24,FromNaviCtrl
756 06f8 9927 clr r25
757 06fa 8836 cpi r24,104
758 06fc 9105 cpc r25,__zero_reg__
759 06fe 49F1 breq .L53
760 0700 8936 cpi r24,105
761 0702 9105 cpc r25,__zero_reg__
762 0704 24F4 brge .L56
763 0706 8736 cpi r24,103
764 0708 9105 cpc r25,__zero_reg__
765 070a 31F0 breq .L52
766 070c 72C0 rjmp .L20
767 .L56:
768 070e 8936 cpi r24,105
769 0710 9105 cpc r25,__zero_reg__
770 0712 09F4 brne .+2
771 0714 45C0 rjmp .L54
772 0716 6DC0 rjmp .L20
773 .L52:
774 0718 8091 0000 lds r24,FromNaviCtrl+13
775 071c 8093 0000 sts FromNaviCtrl_Value,r24
776 0720 8091 0000 lds r24,FromNaviCtrl+14
777 0724 8093 0000 sts FromNaviCtrl_Value+2,r24
778 0728 8091 0000 lds r24,FromNaviCtrl+15
779 072c 8093 0000 sts FromNaviCtrl_Value+1,r24
780 0730 8091 0000 lds r24,FromNaviCtrl+16
781 0734 8093 0000 sts FromNaviCtrl_Value+3,r24
782 0738 8091 0000 lds r24,FromNaviCtrl+17
783 073c 8093 0000 sts FromNaviCtrl_Value+4,r24
784 0740 8091 0000 lds r24,FromNaviCtrl+18
785 0744 8093 0000 sts FromNC_Rotate_C,r24
786 0748 8091 0000 lds r24,FromNaviCtrl+19
787 074c 8093 0000 sts FromNC_Rotate_S,r24
788 0750 50C0 rjmp .L20
789 .L53:
790 0752 8091 0000 lds r24,FromNaviCtrl+13
791 0756 8093 0000 sts NC_Version,r24
792 075a 8091 0000 lds r24,FromNaviCtrl+14
793 075e 8093 0000 sts NC_Version+1,r24
794 0762 8091 0000 lds r24,FromNaviCtrl+15
795 0766 8093 0000 sts NC_Version+2,r24
796 076a 8091 0000 lds r24,FromNaviCtrl+16
797 076e 8093 0000 sts NC_Version+3,r24
798 0772 8091 0000 lds r24,FromNaviCtrl+17
799 0776 8093 0000 sts NC_Version+4,r24
800 077a 8091 0000 lds r24,DebugOut
801 077e 9091 0000 lds r25,FromNaviCtrl+18
802 0782 892B or r24,r25
803 0784 8093 0000 sts DebugOut,r24
804 0788 9091 0000 lds r25,FromNaviCtrl+19
805 078c 9093 0000 sts NC_ErrorCode,r25
806 0790 8091 0000 lds r24,DebugOut+1
807 0794 8370 andi r24,lo8(3)
808 0796 9C70 andi r25,lo8(12)
809 0798 892B or r24,r25
810 079a 8093 0000 sts DebugOut+1,r24
811 079e 29C0 rjmp .L20
812 .L54:
813 07a0 8091 0000 lds r24,FromNaviCtrl+13
814 07a4 8093 0000 sts GPSInfo,r24
815 07a8 8091 0000 lds r24,FromNaviCtrl+14
816 07ac 8093 0000 sts GPSInfo+1,r24
817 07b0 8091 0000 lds r24,FromNaviCtrl+15
818 07b4 8093 0000 sts GPSInfo+2,r24
819 07b8 8091 0000 lds r24,FromNaviCtrl+16
820 07bc 8093 0000 sts GPSInfo+3,r24
821 07c0 8091 0000 lds r24,FromNaviCtrl+17
822 07c4 9091 0000 lds r25,(FromNaviCtrl+17)+1
823 07c8 9093 0000 sts (GPSInfo+4)+1,r25
824 07cc 8093 0000 sts GPSInfo+4,r24
825 07d0 8091 0000 lds r24,FromNaviCtrl+19
826 07d4 9091 0000 lds r25,(FromNaviCtrl+19)+1
827 07d8 9093 0000 sts (GPSInfo+6)+1,r25
828 07dc 8093 0000 sts GPSInfo+6,r24
829 07e0 08C0 rjmp .L20
830 .L47:
831 07e2 1092 0000 sts (GPS_Nick)+1,__zero_reg__
832 07e6 1092 0000 sts GPS_Nick,__zero_reg__
833 07ea 1092 0000 sts (GPS_Roll)+1,__zero_reg__
834 07ee 1092 0000 sts GPS_Roll,__zero_reg__
835 .L20:
836 /* epilogue: frame size=0 */
837 07f2 1F91 pop r17
838 07f4 0F91 pop r16
839 07f6 FF90 pop r15
840 07f8 EF90 pop r14
841 07fa 0895 ret
842 /* epilogue end (size=5) */
843 /* function UpdateSPI_Buffer size 857 (848) */
845 .global SPI_StartTransmitPacket
847 SPI_StartTransmitPacket:
848 /* prologue: frame size=0 */
849 /* prologue end (size=0) */
850 07fc 8091 0000 lds r24,SPITransferCompleted
851 0800 8823 tst r24
852 0802 09F4 brne .+2
853 0804 3BC0 rjmp .L59
854 0806 4598 cbi 40-0x20,5
855 0808 80E0 ldi r24,lo8(ToNaviCtrl)
856 080a 90E0 ldi r25,hi8(ToNaviCtrl)
857 080c 9093 0000 sts (SPI_TX_Buffer)+1,r25
858 0810 8093 0000 sts SPI_TX_Buffer,r24
859 0814 9091 0000 lds r25,SPI_CommandCounter
860 0818 E92F mov r30,r25
861 081a FF27 clr r31
862 081c E050 subi r30,lo8(-(SPI_CommandSequence))
863 081e F040 sbci r31,hi8(-(SPI_CommandSequence))
864 0820 9F5F subi r25,lo8(-(1))
865 0822 9093 0000 sts SPI_CommandCounter,r25
866 0826 8081 ld r24,Z
867 0828 8093 0000 sts ToNaviCtrl+2,r24
868 082c 9930 cpi r25,lo8(9)
869 082e 10F0 brlo .L61
870 0830 1092 0000 sts SPI_CommandCounter,__zero_reg__
871 .L61:
872 0834 1092 0000 sts SPITransferCompleted,__zero_reg__
873 0838 0E94 0000 call UpdateSPI_Buffer
874 083c 81E0 ldi r24,lo8(1)
875 083e 8093 0000 sts SPI_BufferIndex,r24
876 /* #APP */
877 0842 0000 nop
878 0844 0000 nop
879 0846 0000 nop
880 0848 0000 nop
881 084a 0000 nop
882 084c 0000 nop
883 084e 0000 nop
884 0850 0000 nop
885 0852 0000 nop
886 0854 0000 nop
887 0856 0000 nop
888 0858 0000 nop
889 085a 0000 nop
890 085c 0000 nop
891 085e 0000 nop
892 0860 0000 nop
893 0862 0000 nop
894 0864 0000 nop
895 0866 0000 nop
896 0868 0000 nop
897 086a 0000 nop
898 086c 0000 nop
899 086e 0000 nop
900 0870 0000 nop
901 /* #NOAPP */
902 0872 8091 0000 lds r24,ToNaviCtrl
903 0876 8093 0000 sts ToNaviCtrl+31,r24
904 087a 8EBD out 78-0x20,r24
905 .L59:
906 087c 0895 ret
907 /* epilogue: frame size=0 */
908 /* epilogue: noreturn */
909 /* epilogue end (size=0) */
910 /* function SPI_StartTransmitPacket size 89 (89) */
912 .comm GPSInfo,8,1
913 .comm NC_Version,5,1
914 .comm FromNaviCtrl_Value,5,1
915 .comm ToNaviCtrl,32,1
916 .comm FromNaviCtrl,26,1
917 .comm SPI_BufferIndex,1,1
918 .comm SPI_RxBufferIndex,1,1
919 .comm SPI_Buffer,26,1
920 .comm SPI_TX_Buffer,2,1
921 .comm SPITransferCompleted,1,1
922 .comm SPI_ChkSum,1,1
923 .comm SPI_RxDataValid,1,1
924 /* File "spi.c": code 1143 = 0x0477 (1133), prologues 4, epilogues 6 */
8 .text
9 .global SPI_MasterInit
11 SPI_MasterInit:
12 /* prologue: function */
13 /* frame size = 0 */
14 0000 84B1 in r24,36-32
15 0002 806A ori r24,lo8(-96)
16 0004 84B9 out 36-32,r24
17 0006 3D9A sbi 39-32,5
18 0008 82E5 ldi r24,lo8(82)
19 000a 8CBD out 76-32,r24
20 000c 1DBC out 77-32,__zero_reg__
21 000e 459A sbi 40-32,5
22 0010 81E0 ldi r24,lo8(1)
23 0012 8093 0000 sts SPITransferCompleted,r24
24 0016 8AEA ldi r24,lo8(-86)
25 0018 8093 0000 sts ToNaviCtrl,r24
26 001c 83E8 ldi r24,lo8(-125)
27 001e 8093 0000 sts ToNaviCtrl+1,r24
28 0022 8AE0 ldi r24,lo8(10)
29 0024 8093 0000 sts ToNaviCtrl+2,r24
30 0028 1092 0000 sts (ToNaviCtrl+3)+1,__zero_reg__
31 002c 1092 0000 sts ToNaviCtrl+3,__zero_reg__
32 0030 1092 0000 sts (ToNaviCtrl+5)+1,__zero_reg__
33 0034 1092 0000 sts ToNaviCtrl+5,__zero_reg__
34 0038 1092 0000 sts FromNaviCtrl_Value+3,__zero_reg__
35 003c 1092 0000 sts SPI_RxDataValid,__zero_reg__
36 /* epilogue start */
37 0040 0895 ret
39 .global UpdateSPI_Buffer
41 UpdateSPI_Buffer:
42 0042 EF92 push r14
43 0044 FF92 push r15
44 0046 0F93 push r16
45 0048 1F93 push r17
46 /* prologue: function */
47 /* frame size = 0 */
48 004a E090 0000 lds r14,EE_Parameter+28
49 004e FF24 clr r15
50 0050 EE0C lsl r14
51 0052 FF1C rol r15
52 0054 EE0C lsl r14
53 0056 FF1C rol r15
54 0058 0027 clr r16
55 005a F7FC sbrc r15,7
56 005c 0095 com r16
57 005e 102F mov r17,r16
58 0060 6091 0000 lds r22,IntegralNick
59 0064 7091 0000 lds r23,(IntegralNick)+1
60 0068 8091 0000 lds r24,(IntegralNick)+2
61 006c 9091 0000 lds r25,(IntegralNick)+3
62 0070 A801 movw r20,r16
63 0072 9701 movw r18,r14
64 0074 0E94 0000 call __divmodsi4
65 0078 3093 0000 sts (ToNaviCtrl+3)+1,r19
66 007c 2093 0000 sts ToNaviCtrl+3,r18
67 0080 6091 0000 lds r22,IntegralRoll
68 0084 7091 0000 lds r23,(IntegralRoll)+1
69 0088 8091 0000 lds r24,(IntegralRoll)+2
70 008c 9091 0000 lds r25,(IntegralRoll)+3
71 0090 A801 movw r20,r16
72 0092 9701 movw r18,r14
73 0094 0E94 0000 call __divmodsi4
74 0098 3093 0000 sts (ToNaviCtrl+5)+1,r19
75 009c 2093 0000 sts ToNaviCtrl+5,r18
76 00a0 6091 0000 lds r22,ErsatzKompass
77 00a4 7091 0000 lds r23,(ErsatzKompass)+1
78 00a8 8091 0000 lds r24,(ErsatzKompass)+2
79 00ac 9091 0000 lds r25,(ErsatzKompass)+3
80 00b0 2AE0 ldi r18,lo8(10)
81 00b2 30E0 ldi r19,hi8(10)
82 00b4 40E0 ldi r20,hlo8(10)
83 00b6 50E0 ldi r21,hhi8(10)
84 00b8 0E94 0000 call __mulsi3
85 00bc 2091 0000 lds r18,GIER_GRAD_FAKTOR
86 00c0 3091 0000 lds r19,(GIER_GRAD_FAKTOR)+1
87 00c4 4091 0000 lds r20,(GIER_GRAD_FAKTOR)+2
88 00c8 5091 0000 lds r21,(GIER_GRAD_FAKTOR)+3
89 00cc 0E94 0000 call __divmodsi4
90 00d0 3093 0000 sts (ToNaviCtrl+11)+1,r19
91 00d4 2093 0000 sts ToNaviCtrl+11,r18
92 00d8 2091 0000 lds r18,AdWertGier
93 00dc 3091 0000 lds r19,(AdWertGier)+1
94 00e0 8091 0000 lds r24,AdNeutralGier
95 00e4 9091 0000 lds r25,(AdNeutralGier)+1
96 00e8 821B sub r24,r18
97 00ea 930B sbc r25,r19
98 00ec 9093 0000 sts (ToNaviCtrl+17)+1,r25
99 00f0 8093 0000 sts ToNaviCtrl+17,r24
100 00f4 2091 0000 lds r18,NaviCntAcc
101 00f8 3091 0000 lds r19,(NaviCntAcc)+1
102 00fc 8091 0000 lds r24,NaviAccNick
103 0100 9091 0000 lds r25,(NaviAccNick)+1
104 0104 B901 movw r22,r18
105 0106 0E94 0000 call __divmodhi4
106 010a CB01 movw r24,r22
107 010c 880F lsl r24
108 010e 991F rol r25
109 0110 860F add r24,r22
110 0112 971F adc r25,r23
111 0114 880F lsl r24
112 0116 991F rol r25
113 0118 64E0 ldi r22,lo8(4)
114 011a 70E0 ldi r23,hi8(4)
115 011c 0E94 0000 call __divmodhi4
116 0120 7093 0000 sts (ToNaviCtrl+7)+1,r23
117 0124 6093 0000 sts ToNaviCtrl+7,r22
118 0128 8091 0000 lds r24,NaviAccRoll
119 012c 9091 0000 lds r25,(NaviAccRoll)+1
120 0130 B901 movw r22,r18
121 0132 0E94 0000 call __divmodhi4
122 0136 CB01 movw r24,r22
123 0138 880F lsl r24
124 013a 991F rol r25
125 013c 860F add r24,r22
126 013e 971F adc r25,r23
127 0140 880F lsl r24
128 0142 991F rol r25
129 0144 64E0 ldi r22,lo8(4)
130 0146 70E0 ldi r23,hi8(4)
131 0148 0E94 0000 call __divmodhi4
132 014c 7093 0000 sts (ToNaviCtrl+9)+1,r23
133 0150 6093 0000 sts ToNaviCtrl+9,r22
134 0154 1092 0000 sts (NaviCntAcc)+1,__zero_reg__
135 0158 1092 0000 sts NaviCntAcc,__zero_reg__
136 015c 1092 0000 sts (NaviAccNick)+1,__zero_reg__
137 0160 1092 0000 sts NaviAccNick,__zero_reg__
138 0164 1092 0000 sts (NaviAccRoll)+1,__zero_reg__
139 0168 1092 0000 sts NaviAccRoll,__zero_reg__
140 016c 8091 0000 lds r24,ToNaviCtrl+2
141 0170 8D30 cpi r24,lo8(13)
142 0172 01F4 brne .+2
143 0174 00C0 rjmp .L8
144 0176 8E30 cpi r24,lo8(14)
145 0178 00F4 brsh .L12
146 017a 8B30 cpi r24,lo8(11)
147 017c 01F4 brne .+2
148 017e 00C0 rjmp .L6
149 0180 8C30 cpi r24,lo8(12)
150 0182 00F0 brlo .+2
151 0184 00C0 rjmp .L7
152 0186 8A30 cpi r24,lo8(10)
153 0188 01F0 breq .+2
154 018a 00C0 rjmp .L4
155 018c 00C0 rjmp .L33
156 .L12:
157 018e 8F30 cpi r24,lo8(15)
158 0190 01F4 brne .+2
159 0192 00C0 rjmp .L10
160 0194 8F30 cpi r24,lo8(15)
161 0196 00F4 brsh .+2
162 0198 00C0 rjmp .L9
163 019a 8031 cpi r24,lo8(16)
164 019c 01F0 breq .+2
165 019e 00C0 rjmp .L4
166 01a0 00C0 rjmp .L34
167 .L33:
168 01a2 8091 0000 lds r24,Parameter_UserParam1
169 01a6 8093 0000 sts ToNaviCtrl+19,r24
170 01aa 8091 0000 lds r24,Parameter_UserParam2
171 01ae 8093 0000 sts ToNaviCtrl+20,r24
172 01b2 8091 0000 lds r24,Parameter_UserParam3
173 01b6 8093 0000 sts ToNaviCtrl+21,r24
174 01ba 8091 0000 lds r24,Parameter_UserParam4
175 01be 8093 0000 sts ToNaviCtrl+22,r24
176 01c2 8091 0000 lds r24,Parameter_UserParam5
177 01c6 8093 0000 sts ToNaviCtrl+23,r24
178 01ca 8091 0000 lds r24,Parameter_UserParam6
179 01ce 8093 0000 sts ToNaviCtrl+24,r24
180 01d2 8091 0000 lds r24,Parameter_UserParam7
181 01d6 8093 0000 sts ToNaviCtrl+25,r24
182 01da 8091 0000 lds r24,Parameter_UserParam8
183 01de 8093 0000 sts ToNaviCtrl+26,r24
184 01e2 8091 0000 lds r24,FCFlags
185 01e6 8093 0000 sts ToNaviCtrl+27,r24
186 01ea 8091 0000 lds r24,FCFlags
187 01ee 837F andi r24,lo8(-13)
188 01f0 8093 0000 sts FCFlags,r24
189 01f4 0E94 0000 call GetActiveParamSet
190 01f8 8093 0000 sts ToNaviCtrl+28,r24
191 01fc 8091 0000 lds r24,ControlHeading
192 0200 8093 0000 sts ToNaviCtrl+29,r24
193 0204 00C0 rjmp .L4
194 .L34:
195 0206 8091 0000 lds r24,Capacity
196 020a 9091 0000 lds r25,(Capacity)+1
197 020e 9093 0000 sts (ToNaviCtrl+19)+1,r25
198 0212 8093 0000 sts ToNaviCtrl+19,r24
199 0216 8091 0000 lds r24,Capacity+4
200 021a 9091 0000 lds r25,(Capacity+4)+1
201 021e 9093 0000 sts (ToNaviCtrl+21)+1,r25
202 0222 8093 0000 sts ToNaviCtrl+21,r24
203 0226 8091 0000 lds r24,UBat
204 022a 9091 0000 lds r25,(UBat)+1
205 022e 8093 0000 sts ToNaviCtrl+23,r24
206 0232 8091 0000 lds r24,BattLowVoltageWarning
207 0236 8093 0000 sts ToNaviCtrl+24,r24
208 023a 00C0 rjmp .L4
209 .L8:
210 023c 8091 0000 lds r24,EE_Parameter+78
211 0240 8093 0000 sts ToNaviCtrl+19,r24
212 0244 8091 0000 lds r24,EE_Parameter+79
213 0248 8093 0000 sts ToNaviCtrl+20,r24
214 024c 8091 0000 lds r24,EE_Parameter+80
215 0250 8093 0000 sts ToNaviCtrl+21,r24
216 0254 8091 0000 lds r24,EE_Parameter+81
217 0258 8093 0000 sts ToNaviCtrl+22,r24
218 025c 8091 0000 lds r24,EE_Parameter+82
219 0260 8093 0000 sts ToNaviCtrl+23,r24
220 0264 8091 0000 lds r24,EE_Parameter+86
221 0268 8093 0000 sts ToNaviCtrl+24,r24
222 026c 8091 0000 lds r24,EE_Parameter+87
223 0270 8093 0000 sts ToNaviCtrl+25,r24
224 0274 8091 0000 lds r24,EE_Parameter+88
225 0278 8093 0000 sts ToNaviCtrl+26,r24
226 027c 8091 0000 lds r24,EE_Parameter+91
227 0280 8093 0000 sts ToNaviCtrl+27,r24
228 0284 8091 0000 lds r24,EE_Parameter+89
229 0288 8093 0000 sts ToNaviCtrl+28,r24
230 028c 8091 0000 lds r24,EE_Parameter+90
231 0290 8093 0000 sts ToNaviCtrl+29,r24
232 0294 8091 0000 lds r24,EE_Parameter+92
233 0298 00C0 rjmp .L32
234 .L6:
235 /* #APP */
236 ; 209 "spi.c" 1
237 029a F894 cli
238 ; 0 "" 2
239 /* #NOAPP */
240 029c E091 0000 lds r30,EE_Parameter+3
241 02a0 F0E0 ldi r31,lo8(0)
242 02a2 EE0F lsl r30
243 02a4 FF1F rol r31
244 02a6 E050 subi r30,lo8(-(PPM_in))
245 02a8 F040 sbci r31,hi8(-(PPM_in))
246 02aa 0190 ld __tmp_reg__,Z+
247 02ac F081 ld r31,Z
248 02ae E02D mov r30,__tmp_reg__
249 02b0 2FEF ldi r18,hi8(-127)
250 02b2 E138 cpi r30,lo8(-127)
251 02b4 F207 cpc r31,r18
252 02b6 04F4 brge .L13
253 02b8 E1E8 ldi r30,lo8(-127)
254 02ba FFEF ldi r31,hi8(-127)
255 .L13:
256 02bc E038 cpi r30,128
257 02be F105 cpc r31,__zero_reg__
258 02c0 04F0 brlt .L14
259 02c2 EFE7 ldi r30,lo8(127)
260 02c4 F0E0 ldi r31,hi8(127)
261 .L14:
262 02c6 E093 0000 sts ToNaviCtrl+19,r30
263 02ca E091 0000 lds r30,EE_Parameter+4
264 02ce F0E0 ldi r31,lo8(0)
265 02d0 EE0F lsl r30
266 02d2 FF1F rol r31
267 02d4 E050 subi r30,lo8(-(PPM_in))
268 02d6 F040 sbci r31,hi8(-(PPM_in))
269 02d8 0190 ld __tmp_reg__,Z+
270 02da F081 ld r31,Z
271 02dc E02D mov r30,__tmp_reg__
272 02de 6FEF ldi r22,hi8(-127)
273 02e0 E138 cpi r30,lo8(-127)
274 02e2 F607 cpc r31,r22
275 02e4 04F4 brge .L15
276 02e6 E1E8 ldi r30,lo8(-127)
277 02e8 FFEF ldi r31,hi8(-127)
278 .L15:
279 02ea E038 cpi r30,128
280 02ec F105 cpc r31,__zero_reg__
281 02ee 04F0 brlt .L16
282 02f0 EFE7 ldi r30,lo8(127)
283 02f2 F0E0 ldi r31,hi8(127)
284 .L16:
285 02f4 E093 0000 sts ToNaviCtrl+20,r30
286 02f8 E091 0000 lds r30,EE_Parameter+2
287 02fc F0E0 ldi r31,lo8(0)
288 02fe EE0F lsl r30
289 0300 FF1F rol r31
290 0302 E050 subi r30,lo8(-(PPM_in))
291 0304 F040 sbci r31,hi8(-(PPM_in))
292 0306 0190 ld __tmp_reg__,Z+
293 0308 F081 ld r31,Z
294 030a E02D mov r30,__tmp_reg__
295 030c 8FEF ldi r24,hi8(-127)
296 030e E138 cpi r30,lo8(-127)
297 0310 F807 cpc r31,r24
298 0312 04F4 brge .L17
299 0314 E1E8 ldi r30,lo8(-127)
300 0316 FFEF ldi r31,hi8(-127)
301 .L17:
302 0318 E038 cpi r30,128
303 031a F105 cpc r31,__zero_reg__
304 031c 04F0 brlt .L18
305 031e EFE7 ldi r30,lo8(127)
306 0320 F0E0 ldi r31,hi8(127)
307 .L18:
308 0322 E093 0000 sts ToNaviCtrl+21,r30
309 0326 E091 0000 lds r30,EE_Parameter+1
310 032a F0E0 ldi r31,lo8(0)
311 032c EE0F lsl r30
312 032e FF1F rol r31
313 0330 E050 subi r30,lo8(-(PPM_in))
314 0332 F040 sbci r31,hi8(-(PPM_in))
315 0334 0190 ld __tmp_reg__,Z+
316 0336 F081 ld r31,Z
317 0338 E02D mov r30,__tmp_reg__
318 033a 2FEF ldi r18,hi8(-127)
319 033c E138 cpi r30,lo8(-127)
320 033e F207 cpc r31,r18
321 0340 04F4 brge .L19
322 0342 E1E8 ldi r30,lo8(-127)
323 0344 FFEF ldi r31,hi8(-127)
324 .L19:
325 /* #APP */
326 ; 217 "spi.c" 1
327 0346 7894 sei
328 ; 0 "" 2
329 /* #NOAPP */
330 0348 E038 cpi r30,128
331 034a F105 cpc r31,__zero_reg__
332 034c 04F0 brlt .L20
333 034e EFE7 ldi r30,lo8(127)
334 0350 F0E0 ldi r31,hi8(127)
335 .L20:
336 0352 E093 0000 sts ToNaviCtrl+22,r30
337 0356 8091 0000 lds r24,Poti
338 035a 8093 0000 sts ToNaviCtrl+23,r24
339 035e 8091 0000 lds r24,Poti+1
340 0362 8093 0000 sts ToNaviCtrl+24,r24
341 0366 8091 0000 lds r24,Poti+2
342 036a 8093 0000 sts ToNaviCtrl+25,r24
343 036e 8091 0000 lds r24,Poti+3
344 0372 8093 0000 sts ToNaviCtrl+26,r24
345 0376 8091 0000 lds r24,Poti+4
346 037a 8093 0000 sts ToNaviCtrl+27,r24
347 037e 8091 0000 lds r24,Poti+5
348 0382 8093 0000 sts ToNaviCtrl+28,r24
349 0386 8091 0000 lds r24,Poti+6
350 038a 8093 0000 sts ToNaviCtrl+29,r24
351 038e 8091 0000 lds r24,Poti+7
352 .L32:
353 0392 8093 0000 sts ToNaviCtrl+30,r24
354 0396 00C0 rjmp .L4
355 .L7:
356 0398 8091 0000 lds r24,WinkelOut+6
357 039c 8630 cpi r24,lo8(6)
358 039e 00F0 brlo .L21
359 03a0 1092 0000 sts WinkelOut+6,__zero_reg__
360 03a4 85E0 ldi r24,lo8(5)
361 .L21:
362 03a6 8093 0000 sts ToNaviCtrl+19,r24
363 03aa 8091 0000 lds r24,EE_Parameter+93
364 03ae 8093 0000 sts ToNaviCtrl+20,r24
365 03b2 6091 0000 lds r22,HoehenWert
366 03b6 7091 0000 lds r23,(HoehenWert)+1
367 03ba 8091 0000 lds r24,(HoehenWert)+2
368 03be 9091 0000 lds r25,(HoehenWert)+3
369 03c2 25E0 ldi r18,lo8(5)
370 03c4 30E0 ldi r19,hi8(5)
371 03c6 40E0 ldi r20,hlo8(5)
372 03c8 50E0 ldi r21,hhi8(5)
373 03ca 0E94 0000 call __divmodsi4
374 03ce 3093 0000 sts (ToNaviCtrl+21)+1,r19
375 03d2 2093 0000 sts ToNaviCtrl+21,r18
376 03d6 6091 0000 lds r22,SollHoehe
377 03da 7091 0000 lds r23,(SollHoehe)+1
378 03de 8091 0000 lds r24,(SollHoehe)+2
379 03e2 9091 0000 lds r25,(SollHoehe)+3
380 03e6 25E0 ldi r18,lo8(5)
381 03e8 30E0 ldi r19,hi8(5)
382 03ea 40E0 ldi r20,hlo8(5)
383 03ec 50E0 ldi r21,hhi8(5)
384 03ee 0E94 0000 call __divmodsi4
385 03f2 3093 0000 sts (ToNaviCtrl+23)+1,r19
386 03f6 2093 0000 sts ToNaviCtrl+23,r18
387 03fa 8091 0000 lds r24,EE_Parameter+83
388 03fe 8093 0000 sts ToNaviCtrl+25,r24
389 0402 8091 0000 lds r24,EE_Parameter+84
390 0406 8093 0000 sts ToNaviCtrl+26,r24
391 040a 8091 0000 lds r24,EE_Parameter+85
392 040e 8093 0000 sts ToNaviCtrl+27,r24
393 0412 8091 0000 lds r24,SenderOkay
394 0416 8093 0000 sts ToNaviCtrl+28,r24
395 041a 8091 0000 lds r24,PPM_in
396 041e 9091 0000 lds r25,(PPM_in)+1
397 0422 8093 0000 sts ToNaviCtrl+29,r24
398 0426 8091 0000 lds r24,DebugOut+16
399 042a 9091 0000 lds r25,(DebugOut+16)+1
400 042e 64E0 ldi r22,lo8(4)
401 0430 70E0 ldi r23,hi8(4)
402 0432 0E94 0000 call __divmodhi4
403 0436 6093 0000 sts ToNaviCtrl+30,r22
404 043a 00C0 rjmp .L4
405 .L9:
406 043c 1092 0000 sts ToNaviCtrl+19,__zero_reg__
407 0440 80E5 ldi r24,lo8(80)
408 0442 8093 0000 sts ToNaviCtrl+20,r24
409 0446 86E0 ldi r24,lo8(6)
410 0448 8093 0000 sts ToNaviCtrl+21,r24
411 044c 8EE0 ldi r24,lo8(14)
412 044e 8093 0000 sts ToNaviCtrl+22,r24
413 0452 8091 0000 lds r24,PlatinenVersion
414 0456 8093 0000 sts ToNaviCtrl+23,r24
415 045a 8091 0000 lds r24,VersionInfo+5
416 045e 8093 0000 sts ToNaviCtrl+24,r24
417 0462 8091 0000 lds r24,VersionInfo+6
418 0466 8093 0000 sts ToNaviCtrl+25,r24
419 046a 8091 0000 lds r24,VersionInfo+7
420 046e 8093 0000 sts ToNaviCtrl+26,r24
421 0472 00C0 rjmp .L4
422 .L10:
423 0474 8091 0000 lds r24,EE_Parameter+53
424 0478 8093 0000 sts ToNaviCtrl+19,r24
425 047c 8091 0000 lds r24,EE_Parameter+98
426 0480 8093 0000 sts ToNaviCtrl+20,r24
427 0484 8091 0000 lds r24,Parameter_ServoNickControl
428 0488 8093 0000 sts ToNaviCtrl+21,r24
429 048c 8091 0000 lds r24,EE_Parameter+46
430 0490 8093 0000 sts ToNaviCtrl+22,r24
431 0494 8091 0000 lds r24,EE_Parameter+47
432 0498 8093 0000 sts ToNaviCtrl+23,r24
433 049c 8091 0000 lds r24,EE_Parameter+48
434 04a0 8093 0000 sts ToNaviCtrl+24,r24
435 04a4 8091 0000 lds r24,Parameter_ServoRollControl
436 04a8 8093 0000 sts ToNaviCtrl+25,r24
437 04ac 8091 0000 lds r24,EE_Parameter+50
438 04b0 8093 0000 sts ToNaviCtrl+26,r24
439 04b4 8091 0000 lds r24,EE_Parameter+51
440 04b8 8093 0000 sts ToNaviCtrl+27,r24
441 04bc 8091 0000 lds r24,EE_Parameter+52
442 04c0 8093 0000 sts ToNaviCtrl+28,r24
443 .L4:
444 04c4 8091 0000 lds r24,SPI_RxDataValid
445 04c8 8823 tst r24
446 04ca 01F4 brne .+2
447 04cc 00C0 rjmp .L23
448 04ce 8AEF ldi r24,lo8(-6)
449 04d0 8093 0000 sts NaviDataOkay,r24
450 04d4 4091 0000 lds r20,FromNaviCtrl+1
451 04d8 5091 0000 lds r21,(FromNaviCtrl+1)+1
452 04dc CA01 movw r24,r20
453 04de 8150 subi r24,lo8(-(511))
454 04e0 9E4F sbci r25,hi8(-(511))
455 04e2 8F5F subi r24,lo8(1023)
456 04e4 9340 sbci r25,hi8(1023)
457 04e6 00F4 brsh .L24
458 04e8 2091 0000 lds r18,FromNaviCtrl+3
459 04ec 3091 0000 lds r19,(FromNaviCtrl+3)+1
460 04f0 C901 movw r24,r18
461 04f2 8150 subi r24,lo8(-(511))
462 04f4 9E4F sbci r25,hi8(-(511))
463 04f6 8F5F subi r24,lo8(1023)
464 04f8 9340 sbci r25,hi8(1023)
465 04fa 00F4 brsh .L24
466 04fc 8091 0000 lds r24,EE_Parameter+13
467 0500 85FF sbrs r24,5
468 0502 00C0 rjmp .L24
469 0504 5093 0000 sts (GPS_Nick)+1,r21
470 0508 4093 0000 sts GPS_Nick,r20
471 050c 3093 0000 sts (GPS_Roll)+1,r19
472 0510 2093 0000 sts GPS_Roll,r18
473 .L24:
474 0514 8091 0000 lds r24,FromNaviCtrl+7
475 0518 9091 0000 lds r25,(FromNaviCtrl+7)+1
476 051c 21E0 ldi r18,hi8(361)
477 051e 8936 cpi r24,lo8(361)
478 0520 9207 cpc r25,r18
479 0522 04F4 brge .L25
480 0524 9093 0000 sts (KompassValue)+1,r25
481 0528 8093 0000 sts KompassValue,r24
482 .L25:
483 052c 8091 0000 lds r24,KompassValue
484 0530 9091 0000 lds r25,(KompassValue)+1
485 0534 845E subi r24,lo8(-(540))
486 0536 9D4F sbci r25,hi8(-(540))
487 0538 2091 0000 lds r18,KompassStartwert
488 053c 3091 0000 lds r19,(KompassStartwert)+1
489 0540 821B sub r24,r18
490 0542 930B sbc r25,r19
491 0544 68E6 ldi r22,lo8(360)
492 0546 71E0 ldi r23,hi8(360)
493 0548 0E94 0000 call __divmodhi4
494 054c 845B subi r24,lo8(-(-180))
495 054e 9040 sbci r25,hi8(-(-180))
496 0550 9093 0000 sts (KompassRichtung)+1,r25
497 0554 8093 0000 sts KompassRichtung,r24
498 0558 2091 0000 lds r18,FromNaviCtrl+11
499 055c 3091 0000 lds r19,(FromNaviCtrl+11)+1
500 0560 8091 0000 lds r24,beeptime
501 0564 9091 0000 lds r25,(beeptime)+1
502 0568 8217 cp r24,r18
503 056a 9307 cpc r25,r19
504 056c 00F4 brsh .L26
505 056e 8091 0000 lds r24,WinkelOut+6
506 0572 8823 tst r24
507 0574 01F4 brne .L26
508 0576 3093 0000 sts (beeptime)+1,r19
509 057a 2093 0000 sts beeptime,r18
510 .L26:
511 057e 8091 0000 lds r24,FromNaviCtrl
512 0582 8836 cpi r24,lo8(104)
513 0584 01F0 breq .L29
514 0586 8936 cpi r24,lo8(105)
515 0588 01F4 brne .+2
516 058a 00C0 rjmp .L30
517 058c 8736 cpi r24,lo8(103)
518 058e 01F0 breq .+2
519 0590 00C0 rjmp .L31
520 0592 8091 0000 lds r24,FromNaviCtrl+13
521 0596 8093 0000 sts FromNaviCtrl_Value,r24
522 059a 8091 0000 lds r24,FromNaviCtrl+14
523 059e 8093 0000 sts FromNaviCtrl_Value+2,r24
524 05a2 8091 0000 lds r24,FromNaviCtrl+15
525 05a6 8093 0000 sts FromNaviCtrl_Value+1,r24
526 05aa 8091 0000 lds r24,FromNaviCtrl+16
527 05ae 8093 0000 sts FromNaviCtrl_Value+3,r24
528 05b2 8091 0000 lds r24,FromNaviCtrl+17
529 05b6 8093 0000 sts FromNaviCtrl_Value+4,r24
530 05ba 8091 0000 lds r24,FromNaviCtrl+18
531 05be 8093 0000 sts FromNC_Rotate_C,r24
532 05c2 8091 0000 lds r24,FromNaviCtrl+19
533 05c6 8093 0000 sts FromNC_Rotate_S,r24
534 05ca 00C0 rjmp .L31
535 .L29:
536 05cc 8091 0000 lds r24,FromNaviCtrl+13
537 05d0 8093 0000 sts NC_Version,r24
538 05d4 8091 0000 lds r24,FromNaviCtrl+14
539 05d8 8093 0000 sts NC_Version+1,r24
540 05dc 8091 0000 lds r24,FromNaviCtrl+15
541 05e0 8093 0000 sts NC_Version+2,r24
542 05e4 8091 0000 lds r24,FromNaviCtrl+16
543 05e8 8093 0000 sts NC_Version+3,r24
544 05ec 8091 0000 lds r24,FromNaviCtrl+17
545 05f0 8093 0000 sts NC_Version+4,r24
546 05f4 8091 0000 lds r24,FromNaviCtrl+18
547 05f8 9091 0000 lds r25,DebugOut
548 05fc 892B or r24,r25
549 05fe 8093 0000 sts DebugOut,r24
550 0602 9091 0000 lds r25,FromNaviCtrl+19
551 0606 9093 0000 sts NC_ErrorCode,r25
552 060a 9C70 andi r25,lo8(12)
553 060c 8091 0000 lds r24,DebugOut+1
554 0610 8370 andi r24,lo8(3)
555 0612 982B or r25,r24
556 0614 9093 0000 sts DebugOut+1,r25
557 0618 00C0 rjmp .L31
558 .L30:
559 061a 8091 0000 lds r24,FromNaviCtrl+13
560 061e 8093 0000 sts GPSInfo,r24
561 0622 8091 0000 lds r24,FromNaviCtrl+14
562 0626 8093 0000 sts GPSInfo+1,r24
563 062a 8091 0000 lds r24,FromNaviCtrl+15
564 062e 8093 0000 sts GPSInfo+2,r24
565 0632 8091 0000 lds r24,FromNaviCtrl+16
566 0636 8093 0000 sts GPSInfo+3,r24
567 063a 8091 0000 lds r24,FromNaviCtrl+17
568 063e 9091 0000 lds r25,(FromNaviCtrl+17)+1
569 0642 9093 0000 sts (GPSInfo+4)+1,r25
570 0646 8093 0000 sts GPSInfo+4,r24
571 064a 8091 0000 lds r24,FromNaviCtrl+19
572 064e 9091 0000 lds r25,(FromNaviCtrl+19)+1
573 0652 9093 0000 sts (GPSInfo+6)+1,r25
574 0656 8093 0000 sts GPSInfo+6,r24
575 065a 00C0 rjmp .L31
576 .L23:
577 065c 1092 0000 sts (GPS_Nick)+1,__zero_reg__
578 0660 1092 0000 sts GPS_Nick,__zero_reg__
579 0664 1092 0000 sts (GPS_Roll)+1,__zero_reg__
580 0668 1092 0000 sts GPS_Roll,__zero_reg__
581 .L31:
582 /* epilogue start */
583 066c 1F91 pop r17
584 066e 0F91 pop r16
585 0670 FF90 pop r15
586 0672 EF90 pop r14
587 0674 0895 ret
589 .global SPI_StartTransmitPacket
591 SPI_StartTransmitPacket:
592 /* prologue: function */
593 /* frame size = 0 */
594 0676 8091 0000 lds r24,SPITransferCompleted
595 067a 8823 tst r24
596 067c 01F4 brne .+2
597 067e 00C0 rjmp .L38
598 0680 4598 cbi 40-32,5
599 0682 80E0 ldi r24,lo8(ToNaviCtrl)
600 0684 90E0 ldi r25,hi8(ToNaviCtrl)
601 0686 9093 0000 sts (SPI_TX_Buffer)+1,r25
602 068a 8093 0000 sts SPI_TX_Buffer,r24
603 068e 9091 0000 lds r25,SPI_CommandCounter
604 0692 E92F mov r30,r25
605 0694 F0E0 ldi r31,lo8(0)
606 0696 E050 subi r30,lo8(-(SPI_CommandSequence))
607 0698 F040 sbci r31,hi8(-(SPI_CommandSequence))
608 069a 8081 ld r24,Z
609 069c 8093 0000 sts ToNaviCtrl+2,r24
610 06a0 9F5F subi r25,lo8(-(1))
611 06a2 9093 0000 sts SPI_CommandCounter,r25
612 06a6 9930 cpi r25,lo8(9)
613 06a8 00F0 brlo .L37
614 06aa 1092 0000 sts SPI_CommandCounter,__zero_reg__
615 .L37:
616 06ae 1092 0000 sts SPITransferCompleted,__zero_reg__
617 06b2 0E94 0000 call UpdateSPI_Buffer
618 06b6 81E0 ldi r24,lo8(1)
619 06b8 8093 0000 sts SPI_BufferIndex,r24
620 /* #APP */
621 ; 75 "spi.c" 1
622 06bc 0000 nop
623 ; 0 "" 2
624 ; 75 "spi.c" 1
625 06be 0000 nop
626 ; 0 "" 2
627 ; 75 "spi.c" 1
628 06c0 0000 nop
629 ; 0 "" 2
630 ; 75 "spi.c" 1
631 06c2 0000 nop
632 ; 0 "" 2
633 ; 75 "spi.c" 1
634 06c4 0000 nop
635 ; 0 "" 2
636 ; 75 "spi.c" 1
637 06c6 0000 nop
638 ; 0 "" 2
639 ; 75 "spi.c" 1
640 06c8 0000 nop
641 ; 0 "" 2
642 ; 75 "spi.c" 1
643 06ca 0000 nop
644 ; 0 "" 2
645 ; 76 "spi.c" 1
646 06cc 0000 nop
647 ; 0 "" 2
648 ; 76 "spi.c" 1
649 06ce 0000 nop
650 ; 0 "" 2
651 ; 76 "spi.c" 1
652 06d0 0000 nop
653 ; 0 "" 2
654 ; 76 "spi.c" 1
655 06d2 0000 nop
656 ; 0 "" 2
657 ; 76 "spi.c" 1
658 06d4 0000 nop
659 ; 0 "" 2
660 ; 76 "spi.c" 1
661 06d6 0000 nop
662 ; 0 "" 2
663 ; 76 "spi.c" 1
664 06d8 0000 nop
665 ; 0 "" 2
666 ; 76 "spi.c" 1
667 06da 0000 nop
668 ; 0 "" 2
669 ; 77 "spi.c" 1
670 06dc 0000 nop
671 ; 0 "" 2
672 ; 77 "spi.c" 1
673 06de 0000 nop
674 ; 0 "" 2
675 ; 77 "spi.c" 1
676 06e0 0000 nop
677 ; 0 "" 2
678 ; 77 "spi.c" 1
679 06e2 0000 nop
680 ; 0 "" 2
681 ; 77 "spi.c" 1
682 06e4 0000 nop
683 ; 0 "" 2
684 ; 77 "spi.c" 1
685 06e6 0000 nop
686 ; 0 "" 2
687 ; 77 "spi.c" 1
688 06e8 0000 nop
689 ; 0 "" 2
690 ; 77 "spi.c" 1
691 06ea 0000 nop
692 ; 0 "" 2
693 /* #NOAPP */
694 06ec 8091 0000 lds r24,ToNaviCtrl
695 06f0 8093 0000 sts ToNaviCtrl+31,r24
696 06f4 8EBD out 78-32,r24
697 .L38:
698 06f6 0895 ret
700 .global SPI_TransmitByte
702 SPI_TransmitByte:
703 /* prologue: function */
704 /* frame size = 0 */
705 06f8 8091 0000 lds r24,SPITransferCompleted
706 06fc 8823 tst r24
707 06fe 01F0 breq .+2
708 0700 00C0 rjmp .L52
709 0702 0DB4 in __tmp_reg__,77-32
710 0704 07FE sbrs __tmp_reg__,7
711 0706 00C0 rjmp .L52
712 0708 84E0 ldi r24,lo8(4)
713 070a 8093 0000 sts SendSPI,r24
714 070e 459A sbi 40-32,5
715 0710 2EB5 in r18,78-32
716 0712 8091 0000 lds r24,SPI_RXState.2259
717 0716 8130 cpi r24,lo8(1)
718 0718 01F0 breq .L43
719 071a 8130 cpi r24,lo8(1)
720 071c 00F0 brlo .L42
721 071e 8230 cpi r24,lo8(2)
722 0720 01F4 brne .L41
723 0722 00C0 rjmp .L55
724 .L42:
725 0724 1092 0000 sts SPI_RxBufferIndex,__zero_reg__
726 0728 2093 0000 sts rxchksum.2261,r18
727 072c 2138 cpi r18,lo8(-127)
728 072e 01F4 brne .L41
729 0730 81E0 ldi r24,lo8(1)
730 0732 00C0 rjmp .L54
731 .L43:
732 0734 2535 cpi r18,lo8(85)
733 0736 01F4 brne .L49
734 0738 8091 0000 lds r24,rxchksum.2261
735 073c 8B5A subi r24,lo8(-(85))
736 073e 8093 0000 sts rxchksum.2261,r24
737 0742 82E0 ldi r24,lo8(2)
738 .L54:
739 0744 8093 0000 sts SPI_RXState.2259,r24
740 0748 00C0 rjmp .L41
741 .L55:
742 074a 8091 0000 lds r24,SPI_RxBufferIndex
743 074e E82F mov r30,r24
744 0750 F0E0 ldi r31,lo8(0)
745 0752 E050 subi r30,lo8(-(SPI_Buffer))
746 0754 F040 sbci r31,hi8(-(SPI_Buffer))
747 0756 2083 st Z,r18
748 0758 8F5F subi r24,lo8(-(1))
749 075a 8093 0000 sts SPI_RxBufferIndex,r24
750 075e 9091 0000 lds r25,rxchksum.2261
751 0762 8A31 cpi r24,lo8(26)
752 0764 00F0 brlo .L46
753 0766 2917 cp r18,r25
754 0768 01F4 brne .L47
755 076a A0E0 ldi r26,lo8(FromNaviCtrl)
756 076c B0E0 ldi r27,hi8(FromNaviCtrl)
757 076e E0E0 ldi r30,lo8(SPI_Buffer)
758 0770 F0E0 ldi r31,hi8(SPI_Buffer)
759 0772 8AE1 ldi r24,lo8(26)
760 .L48:
761 0774 0190 ld r0,Z+
762 0776 0D92 st X+,r0
763 0778 8150 subi r24,lo8(-(-1))
764 077a 01F4 brne .L48
765 077c 81E0 ldi r24,lo8(1)
766 077e 8093 0000 sts SPI_RxDataValid,r24
767 0782 00C0 rjmp .L49
768 .L47:
769 0784 1092 0000 sts SPI_RxDataValid,__zero_reg__
770 .L49:
771 0788 1092 0000 sts SPI_RXState.2259,__zero_reg__
772 078c 00C0 rjmp .L41
773 .L46:
774 078e 920F add r25,r18
775 0790 9093 0000 sts rxchksum.2261,r25
776 .L41:
777 0794 2091 0000 lds r18,SPI_BufferIndex
778 0798 2032 cpi r18,lo8(32)
779 079a 00F0 brlo .+2
780 079c 00C0 rjmp .L50
781 079e 4598 cbi 40-32,5
782 /* #APP */
783 ; 141 "spi.c" 1
784 07a0 0000 nop
785 ; 0 "" 2
786 ; 141 "spi.c" 1
787 07a2 0000 nop
788 ; 0 "" 2
789 ; 141 "spi.c" 1
790 07a4 0000 nop
791 ; 0 "" 2
792 ; 141 "spi.c" 1
793 07a6 0000 nop
794 ; 0 "" 2
795 ; 141 "spi.c" 1
796 07a8 0000 nop
797 ; 0 "" 2
798 ; 141 "spi.c" 1
799 07aa 0000 nop
800 ; 0 "" 2
801 ; 141 "spi.c" 1
802 07ac 0000 nop
803 ; 0 "" 2
804 ; 141 "spi.c" 1
805 07ae 0000 nop
806 ; 0 "" 2
807 ; 142 "spi.c" 1
808 07b0 0000 nop
809 ; 0 "" 2
810 ; 142 "spi.c" 1
811 07b2 0000 nop
812 ; 0 "" 2
813 ; 142 "spi.c" 1
814 07b4 0000 nop
815 ; 0 "" 2
816 ; 142 "spi.c" 1
817 07b6 0000 nop
818 ; 0 "" 2
819 ; 142 "spi.c" 1
820 07b8 0000 nop
821 ; 0 "" 2
822 ; 142 "spi.c" 1
823 07ba 0000 nop
824 ; 0 "" 2
825 ; 142 "spi.c" 1
826 07bc 0000 nop
827 ; 0 "" 2
828 ; 142 "spi.c" 1
829 07be 0000 nop
830 ; 0 "" 2
831 ; 143 "spi.c" 1
832 07c0 0000 nop
833 ; 0 "" 2
834 ; 143 "spi.c" 1
835 07c2 0000 nop
836 ; 0 "" 2
837 ; 143 "spi.c" 1
838 07c4 0000 nop
839 ; 0 "" 2
840 ; 143 "spi.c" 1
841 07c6 0000 nop
842 ; 0 "" 2
843 ; 143 "spi.c" 1
844 07c8 0000 nop
845 ; 0 "" 2
846 ; 143 "spi.c" 1
847 07ca 0000 nop
848 ; 0 "" 2
849 ; 143 "spi.c" 1
850 07cc 0000 nop
851 ; 0 "" 2
852 ; 143 "spi.c" 1
853 07ce 0000 nop
854 ; 0 "" 2
855 /* #NOAPP */
856 07d0 E091 0000 lds r30,SPI_TX_Buffer
857 07d4 F091 0000 lds r31,(SPI_TX_Buffer)+1
858 07d8 E20F add r30,r18
859 07da F11D adc r31,__zero_reg__
860 07dc 8081 ld r24,Z
861 07de 8EBD out 78-32,r24
862 07e0 9091 0000 lds r25,ToNaviCtrl+31
863 07e4 890F add r24,r25
864 07e6 8093 0000 sts ToNaviCtrl+31,r24
865 07ea 00C0 rjmp .L51
866 .L50:
867 07ec 81E0 ldi r24,lo8(1)
868 07ee 8093 0000 sts SPITransferCompleted,r24
869 .L51:
870 07f2 2F5F subi r18,lo8(-(1))
871 07f4 2093 0000 sts SPI_BufferIndex,r18
872 .L52:
873 07f8 0895 ret
875 .global FromNC_Rotate_C
876 .data
879 FromNC_Rotate_C:
880 0000 20 .byte 32
881 .global FromNC_Rotate_S
882 .global FromNC_Rotate_S
883 .section .bss
886 FromNC_Rotate_S:
887 0000 00 .skip 1,0
888 .global NaviDataOkay
889 .data
892 NaviDataOkay:
893 0001 FA .byte -6
894 .global SPI_CommandSequence
897 SPI_CommandSequence:
898 0002 0B .byte 11
899 0003 0A .byte 10
900 0004 0D .byte 13
901 0005 0B .byte 11
902 0006 0C .byte 12
903 0007 0E .byte 14
904 0008 0B .byte 11
905 0009 0F .byte 15
906 000a 10 .byte 16
907 .global SPI_CommandCounter
908 .global SPI_CommandCounter
909 .section .bss
912 SPI_CommandCounter:
913 0001 00 .skip 1,0
914 .global NC_ErrorCode
915 .global NC_ErrorCode
918 NC_ErrorCode:
919 0002 00 .skip 1,0
920 .lcomm rxchksum.2261,1
921 .lcomm SPI_RXState.2259,1
922 .comm GPSInfo,8,1
923 .comm NC_Version,5,1
924 .comm FromNaviCtrl_Value,5,1
925 .comm ToNaviCtrl,32,1
926 .comm FromNaviCtrl,26,1
927 .comm SPI_BufferIndex,1,1
928 .comm SPI_RxBufferIndex,1,1
929 .comm SPI_Buffer,26,1
930 .comm SPI_TX_Buffer,2,1
931 .comm SPITransferCompleted,1,1
932 .comm SPI_ChkSum,1,1
933 .comm SPI_RxDataValid,1,1
934 .global __do_copy_data
935 .global __do_clear_bss
DEFINED SYMBOLS
*ABS*:00000000 spi.c
C:\Users\Arthur-P\AppData\Local\Temp/ccM3baaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/ccM3baaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/ccM3baaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/ccM3baaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccM3baaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccM3baaa.s:15 .bss:00000000 NC_ErrorCode
C:\Users\Arthur-P\AppData\Local\Temp/ccM3baaa.s:21 .bss:00000001 SPI_CommandCounter
C:\Users\Arthur-P\AppData\Local\Temp/ccM3baaa.s:27 .data:00000000 SPI_CommandSequence
C:\Users\Arthur-P\AppData\Local\Temp/ccM3baaa.s:40 .data:00000009 NaviDataOkay
C:\Users\Arthur-P\AppData\Local\Temp/ccM3baaa.s:47 .bss:00000002 FromNC_Rotate_S
C:\Users\Arthur-P\AppData\Local\Temp/ccM3baaa.s:53 .data:0000000a FromNC_Rotate_C
C:\Users\Arthur-P\AppData\Local\Temp/ccM3baaa.s:58 .text:00000000 SPI_MasterInit
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccV068Pj.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccV068Pj.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccV068Pj.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccV068Pj.s:5 *ABS*:00000034 __CCP__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccV068Pj.s:6 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccV068Pj.s:7 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccV068Pj.s:11 .text:00000000 SPI_MasterInit
*COM*:00000001 SPITransferCompleted
*COM*:00000020 ToNaviCtrl
*COM*:00000005 FromNaviCtrl_Value
*COM*:00000001 SPI_RxDataValid
.bss:00000003 SPI_RXState.0
C:\Users\Arthur-P\AppData\Local\Temp/ccM3baaa.s:88 .bss:00000004 rxchksum.1
C:\Users\Arthur-P\AppData\Local\Temp/ccM3baaa.s:92 .text:00000042 SPI_TransmitByte
*COM*:00000001 SPI_RxBufferIndex
*COM*:0000001a SPI_Buffer
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccV068Pj.s:41 .text:00000042 UpdateSPI_Buffer
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccV068Pj.s:892 .data:00000001 NaviDataOkay
*COM*:0000001a FromNaviCtrl
*COM*:00000001 SPI_BufferIndex
*COM*:00000002 SPI_TX_Buffer
C:\Users\Arthur-P\AppData\Local\Temp/ccM3baaa.s:233 .text:00000158 UpdateSPI_Buffer
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccV068Pj.s:879 .data:00000000 FromNC_Rotate_C
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccV068Pj.s:886 .bss:00000000 FromNC_Rotate_S
*COM*:00000005 NC_Version
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccV068Pj.s:918 .bss:00000002 NC_ErrorCode
*COM*:00000008 GPSInfo
C:\Users\Arthur-P\AppData\Local\Temp/ccM3baaa.s:847 .text:000007fc SPI_StartTransmitPacket
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccV068Pj.s:591 .text:00000676 SPI_StartTransmitPacket
*COM*:00000002 SPI_TX_Buffer
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccV068Pj.s:912 .bss:00000001 SPI_CommandCounter
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccV068Pj.s:897 .data:00000002 SPI_CommandSequence
*COM*:00000001 SPI_BufferIndex
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccV068Pj.s:702 .text:000006f8 SPI_TransmitByte
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccV068Pj.s:920 .bss:00000004 SPI_RXState.2259
*COM*:00000001 SPI_RxBufferIndex
.bss:00000003 rxchksum.2261
*COM*:0000001a SPI_Buffer
*COM*:00000001 SPI_ChkSum
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
SendSPI
EE_Parameter
IntegralNick
__divmodsi4
IntegralRoll
ErsatzKompass
__mulsi3
GIER_GRAD_FAKTOR
AdWertGier
AdNeutralGier
AdWertGier
NaviCntAcc
NaviAccNick
__divmodhi4
981,3 → 991,6
KompassStartwert
KompassRichtung
beeptime
SendSPI
__do_copy_data
__do_clear_bss