0,0 → 1,950 |
1 .file "spi.c" |
2 __SREG__ = 0x3f |
3 __SP_H__ = 0x3e |
4 __SP_L__ = 0x3d |
5 __CCP__ = 0x34 |
6 __tmp_reg__ = 0 |
7 __zero_reg__ = 1 |
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 9AE0 ldi r25,lo8(10) |
29 0024 9093 0000 sts ToNaviCtrl+2,r25 |
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 0040 1092 0000 sts SPI_VersionInfo,__zero_reg__ |
37 0044 8CE4 ldi r24,lo8(76) |
38 0046 8093 0000 sts SPI_VersionInfo+1,r24 |
39 004a 86E0 ldi r24,lo8(6) |
40 004c 8093 0000 sts SPI_VersionInfo+2,r24 |
41 0050 9093 0000 sts SPI_VersionInfo+3,r25 |
42 /* epilogue start */ |
43 0054 0895 ret |
45 .global UpdateSPI_Buffer |
47 UpdateSPI_Buffer: |
48 0056 EF92 push r14 |
49 0058 FF92 push r15 |
50 005a 0F93 push r16 |
51 005c 1F93 push r17 |
52 /* prologue: function */ |
53 /* frame size = 0 */ |
54 005e E090 0000 lds r14,EE_Parameter+23 |
55 0062 FF24 clr r15 |
56 0064 EE0C lsl r14 |
57 0066 FF1C rol r15 |
58 0068 EE0C lsl r14 |
59 006a FF1C rol r15 |
60 006c 0027 clr r16 |
61 006e F7FC sbrc r15,7 |
62 0070 0095 com r16 |
63 0072 102F mov r17,r16 |
64 0074 6091 0000 lds r22,IntegralNick |
65 0078 7091 0000 lds r23,(IntegralNick)+1 |
66 007c 8091 0000 lds r24,(IntegralNick)+2 |
67 0080 9091 0000 lds r25,(IntegralNick)+3 |
68 0084 A801 movw r20,r16 |
69 0086 9701 movw r18,r14 |
70 0088 0E94 0000 call __divmodsi4 |
71 008c 3093 0000 sts (ToNaviCtrl+3)+1,r19 |
72 0090 2093 0000 sts ToNaviCtrl+3,r18 |
73 0094 6091 0000 lds r22,IntegralRoll |
74 0098 7091 0000 lds r23,(IntegralRoll)+1 |
75 009c 8091 0000 lds r24,(IntegralRoll)+2 |
76 00a0 9091 0000 lds r25,(IntegralRoll)+3 |
77 00a4 A801 movw r20,r16 |
78 00a6 9701 movw r18,r14 |
79 00a8 0E94 0000 call __divmodsi4 |
80 00ac 3093 0000 sts (ToNaviCtrl+5)+1,r19 |
81 00b0 2093 0000 sts ToNaviCtrl+5,r18 |
82 00b4 6091 0000 lds r22,ErsatzKompass |
83 00b8 7091 0000 lds r23,(ErsatzKompass)+1 |
84 00bc 8091 0000 lds r24,(ErsatzKompass)+2 |
85 00c0 9091 0000 lds r25,(ErsatzKompass)+3 |
86 00c4 2AE0 ldi r18,lo8(10) |
87 00c6 30E0 ldi r19,hi8(10) |
88 00c8 40E0 ldi r20,hlo8(10) |
89 00ca 50E0 ldi r21,hhi8(10) |
90 00cc 0E94 0000 call __mulsi3 |
91 00d0 2091 0000 lds r18,GIER_GRAD_FAKTOR |
92 00d4 3091 0000 lds r19,(GIER_GRAD_FAKTOR)+1 |
93 00d8 4091 0000 lds r20,(GIER_GRAD_FAKTOR)+2 |
94 00dc 5091 0000 lds r21,(GIER_GRAD_FAKTOR)+3 |
95 00e0 0E94 0000 call __divmodsi4 |
96 00e4 3093 0000 sts (ToNaviCtrl+11)+1,r19 |
97 00e8 2093 0000 sts ToNaviCtrl+11,r18 |
98 00ec E091 0000 lds r30,NaviCntAcc |
99 00f0 F091 0000 lds r31,(NaviCntAcc)+1 |
100 00f4 8091 0000 lds r24,NaviAccNick |
101 00f8 9091 0000 lds r25,(NaviAccNick)+1 |
102 00fc BF01 movw r22,r30 |
103 00fe 0E94 0000 call __divmodhi4 |
104 0102 CB01 movw r24,r22 |
105 0104 880F lsl r24 |
106 0106 991F rol r25 |
107 0108 860F add r24,r22 |
108 010a 971F adc r25,r23 |
109 010c 9C01 movw r18,r24 |
110 010e 220F lsl r18 |
111 0110 331F rol r19 |
112 0112 96FD sbrc r25,6 |
113 0114 00C0 rjmp .L35 |
114 .L4: |
115 0116 3595 asr r19 |
116 0118 2795 ror r18 |
117 011a 3595 asr r19 |
118 011c 2795 ror r18 |
119 011e 3093 0000 sts (ToNaviCtrl+7)+1,r19 |
120 0122 2093 0000 sts ToNaviCtrl+7,r18 |
121 0126 8091 0000 lds r24,NaviAccRoll |
122 012a 9091 0000 lds r25,(NaviAccRoll)+1 |
123 012e BF01 movw r22,r30 |
124 0130 0E94 0000 call __divmodhi4 |
125 0134 CB01 movw r24,r22 |
126 0136 880F lsl r24 |
127 0138 991F rol r25 |
128 013a 860F add r24,r22 |
129 013c 971F adc r25,r23 |
130 013e 9C01 movw r18,r24 |
131 0140 220F lsl r18 |
132 0142 331F rol r19 |
133 0144 96FD sbrc r25,6 |
134 0146 00C0 rjmp .L36 |
135 .L5: |
136 0148 3595 asr r19 |
137 014a 2795 ror r18 |
138 014c 3595 asr r19 |
139 014e 2795 ror r18 |
140 0150 3093 0000 sts (ToNaviCtrl+9)+1,r19 |
141 0154 2093 0000 sts ToNaviCtrl+9,r18 |
142 0158 1092 0000 sts (NaviCntAcc)+1,__zero_reg__ |
143 015c 1092 0000 sts NaviCntAcc,__zero_reg__ |
144 0160 1092 0000 sts (NaviAccNick)+1,__zero_reg__ |
145 0164 1092 0000 sts NaviAccNick,__zero_reg__ |
146 0168 1092 0000 sts (NaviAccRoll)+1,__zero_reg__ |
147 016c 1092 0000 sts NaviAccRoll,__zero_reg__ |
148 0170 8091 0000 lds r24,ToNaviCtrl+2 |
149 0174 8C30 cpi r24,lo8(12) |
150 0176 01F4 brne .+2 |
151 0178 00C0 rjmp .L9 |
152 017a 8D30 cpi r24,lo8(13) |
153 017c 00F4 brsh .+2 |
154 017e 00C0 rjmp .L37 |
155 0180 8E30 cpi r24,lo8(14) |
156 0182 01F4 brne .+2 |
157 0184 00C0 rjmp .L11 |
158 0186 8E30 cpi r24,lo8(14) |
159 0188 00F0 brlo .+2 |
160 018a 00C0 rjmp .L38 |
161 018c 8091 0000 lds r24,EE_Parameter+69 |
162 0190 8093 0000 sts ToNaviCtrl+19,r24 |
163 0194 8091 0000 lds r24,EE_Parameter+70 |
164 0198 8093 0000 sts ToNaviCtrl+20,r24 |
165 019c 8091 0000 lds r24,EE_Parameter+71 |
166 01a0 8093 0000 sts ToNaviCtrl+21,r24 |
167 01a4 8091 0000 lds r24,EE_Parameter+72 |
168 01a8 8093 0000 sts ToNaviCtrl+22,r24 |
169 01ac 8091 0000 lds r24,EE_Parameter+73 |
170 01b0 8093 0000 sts ToNaviCtrl+23,r24 |
171 01b4 8091 0000 lds r24,EE_Parameter+77 |
172 01b8 8093 0000 sts ToNaviCtrl+24,r24 |
173 01bc 8091 0000 lds r24,EE_Parameter+78 |
174 01c0 8093 0000 sts ToNaviCtrl+25,r24 |
175 01c4 8091 0000 lds r24,EE_Parameter+79 |
176 01c8 8093 0000 sts ToNaviCtrl+26,r24 |
177 01cc 8091 0000 lds r24,EE_Parameter+82 |
178 01d0 8093 0000 sts ToNaviCtrl+27,r24 |
179 01d4 8091 0000 lds r24,EE_Parameter+80 |
180 01d8 8093 0000 sts ToNaviCtrl+28,r24 |
181 01dc 8091 0000 lds r24,EE_Parameter+81 |
182 01e0 8093 0000 sts ToNaviCtrl+29,r24 |
183 01e4 8091 0000 lds r24,EE_Parameter+83 |
184 01e8 8093 0000 sts ToNaviCtrl+30,r24 |
185 .L6: |
186 01ec 8091 0000 lds r24,SPI_RxDataValid |
187 01f0 8823 tst r24 |
188 01f2 01F4 brne .+2 |
189 01f4 00C0 rjmp .L26 |
190 .L42: |
191 01f6 2091 0000 lds r18,FromNaviCtrl+1 |
192 01fa 3091 0000 lds r19,(FromNaviCtrl+1)+1 |
193 01fe C901 movw r24,r18 |
194 0200 8150 subi r24,lo8(-(511)) |
195 0202 9E4F sbci r25,hi8(-(511)) |
196 0204 8F5F subi r24,lo8(1023) |
197 0206 9340 sbci r25,hi8(1023) |
198 0208 00F4 brsh .L27 |
199 020a 4091 0000 lds r20,FromNaviCtrl+3 |
200 020e 5091 0000 lds r21,(FromNaviCtrl+3)+1 |
201 0212 CA01 movw r24,r20 |
202 0214 8150 subi r24,lo8(-(511)) |
203 0216 9E4F sbci r25,hi8(-(511)) |
204 0218 8F5F subi r24,lo8(1023) |
205 021a 9340 sbci r25,hi8(1023) |
206 021c 00F4 brsh .+2 |
207 021e 00C0 rjmp .L39 |
208 .L27: |
209 0220 8091 0000 lds r24,FromNaviCtrl+7 |
210 0224 9091 0000 lds r25,(FromNaviCtrl+7)+1 |
211 0228 21E0 ldi r18,hi8(361) |
212 022a 8936 cpi r24,lo8(361) |
213 022c 9207 cpc r25,r18 |
214 022e 04F4 brge .L28 |
215 0230 9093 0000 sts (KompassValue)+1,r25 |
216 0234 8093 0000 sts KompassValue,r24 |
217 .L28: |
218 0238 8091 0000 lds r24,KompassValue |
219 023c 9091 0000 lds r25,(KompassValue)+1 |
220 0240 845E subi r24,lo8(-(540)) |
221 0242 9D4F sbci r25,hi8(-(540)) |
222 0244 2091 0000 lds r18,KompassStartwert |
223 0248 3091 0000 lds r19,(KompassStartwert)+1 |
224 024c 821B sub r24,r18 |
225 024e 930B sbc r25,r19 |
226 0250 68E6 ldi r22,lo8(360) |
227 0252 71E0 ldi r23,hi8(360) |
228 0254 0E94 0000 call __divmodhi4 |
229 0258 845B subi r24,lo8(-(-180)) |
230 025a 9040 sbci r25,hi8(-(-180)) |
231 025c 9093 0000 sts (KompassRichtung)+1,r25 |
232 0260 8093 0000 sts KompassRichtung,r24 |
233 0264 2091 0000 lds r18,FromNaviCtrl+11 |
234 0268 3091 0000 lds r19,(FromNaviCtrl+11)+1 |
235 026c 8091 0000 lds r24,beeptime |
236 0270 9091 0000 lds r25,(beeptime)+1 |
237 0274 8217 cp r24,r18 |
238 0276 9307 cpc r25,r19 |
239 0278 00F4 brsh .L29 |
240 027a 8091 0000 lds r24,WinkelOut+6 |
241 027e 8823 tst r24 |
242 0280 01F4 brne .+2 |
243 0282 00C0 rjmp .L40 |
244 .L29: |
245 0284 8091 0000 lds r24,FromNaviCtrl |
246 0288 8736 cpi r24,lo8(103) |
247 028a 01F4 brne .L32 |
248 028c 8091 0000 lds r24,FromNaviCtrl+13 |
249 0290 8093 0000 sts FromNaviCtrl_Value,r24 |
250 0294 8091 0000 lds r24,FromNaviCtrl+14 |
251 0298 8093 0000 sts FromNaviCtrl_Value+2,r24 |
252 029c 8091 0000 lds r24,FromNaviCtrl+15 |
253 02a0 8093 0000 sts FromNaviCtrl_Value+1,r24 |
254 02a4 8091 0000 lds r24,FromNaviCtrl+16 |
255 02a8 8093 0000 sts FromNaviCtrl_Value+3,r24 |
256 02ac 8091 0000 lds r24,FromNaviCtrl+17 |
257 02b0 8093 0000 sts FromNaviCtrl_Value+4,r24 |
258 .L32: |
259 /* epilogue start */ |
260 02b4 1F91 pop r17 |
261 02b6 0F91 pop r16 |
262 02b8 FF90 pop r15 |
263 02ba EF90 pop r14 |
264 02bc 0895 ret |
265 .L37: |
266 02be 8A30 cpi r24,lo8(10) |
267 02c0 01F4 brne .+2 |
268 02c2 00C0 rjmp .L7 |
269 02c4 8B30 cpi r24,lo8(11) |
270 02c6 01F0 breq .+2 |
271 02c8 00C0 rjmp .L6 |
272 /* #APP */ |
273 ; 204 "spi.c" 1 |
274 02ca F894 cli |
275 ; 0 "" 2 |
276 /* #NOAPP */ |
277 02cc E091 0000 lds r30,EE_Parameter+2 |
278 02d0 F0E0 ldi r31,lo8(0) |
279 02d2 EE0F lsl r30 |
280 02d4 FF1F rol r31 |
281 02d6 E050 subi r30,lo8(-(PPM_in)) |
282 02d8 F040 sbci r31,hi8(-(PPM_in)) |
283 02da 0190 ld __tmp_reg__,Z+ |
284 02dc F081 ld r31,Z |
285 02de E02D mov r30,__tmp_reg__ |
286 02e0 2FEF ldi r18,hi8(-127) |
287 02e2 E138 cpi r30,lo8(-127) |
288 02e4 F207 cpc r31,r18 |
289 02e6 04F4 brge .L15 |
290 02e8 E1E8 ldi r30,lo8(-127) |
291 02ea FFEF ldi r31,hi8(-127) |
292 .L15: |
293 02ec E038 cpi r30,128 |
294 02ee F105 cpc r31,__zero_reg__ |
295 02f0 04F0 brlt .L16 |
296 02f2 EFE7 ldi r30,lo8(127) |
297 02f4 F0E0 ldi r31,hi8(127) |
298 .L16: |
299 02f6 E093 0000 sts ToNaviCtrl+19,r30 |
300 02fa E091 0000 lds r30,EE_Parameter+3 |
301 02fe F0E0 ldi r31,lo8(0) |
302 0300 EE0F lsl r30 |
303 0302 FF1F rol r31 |
304 0304 E050 subi r30,lo8(-(PPM_in)) |
305 0306 F040 sbci r31,hi8(-(PPM_in)) |
306 0308 0190 ld __tmp_reg__,Z+ |
307 030a F081 ld r31,Z |
308 030c E02D mov r30,__tmp_reg__ |
309 030e 4FEF ldi r20,hi8(-127) |
310 0310 E138 cpi r30,lo8(-127) |
311 0312 F407 cpc r31,r20 |
312 0314 04F4 brge .L17 |
313 0316 E1E8 ldi r30,lo8(-127) |
314 0318 FFEF ldi r31,hi8(-127) |
315 .L17: |
316 031a E038 cpi r30,128 |
317 031c F105 cpc r31,__zero_reg__ |
318 031e 04F0 brlt .L18 |
319 0320 EFE7 ldi r30,lo8(127) |
320 0322 F0E0 ldi r31,hi8(127) |
321 .L18: |
322 0324 E093 0000 sts ToNaviCtrl+20,r30 |
323 0328 E091 0000 lds r30,EE_Parameter+1 |
324 032c F0E0 ldi r31,lo8(0) |
325 032e EE0F lsl r30 |
326 0330 FF1F rol r31 |
327 0332 E050 subi r30,lo8(-(PPM_in)) |
328 0334 F040 sbci r31,hi8(-(PPM_in)) |
329 0336 0190 ld __tmp_reg__,Z+ |
330 0338 F081 ld r31,Z |
331 033a E02D mov r30,__tmp_reg__ |
332 033c 6FEF ldi r22,hi8(-127) |
333 033e E138 cpi r30,lo8(-127) |
334 0340 F607 cpc r31,r22 |
335 0342 04F4 brge .L19 |
336 0344 E1E8 ldi r30,lo8(-127) |
337 0346 FFEF ldi r31,hi8(-127) |
338 .L19: |
339 0348 E038 cpi r30,128 |
340 034a F105 cpc r31,__zero_reg__ |
341 034c 04F0 brlt .L20 |
342 034e EFE7 ldi r30,lo8(127) |
343 0350 F0E0 ldi r31,hi8(127) |
344 .L20: |
345 0352 E093 0000 sts ToNaviCtrl+21,r30 |
346 0356 E091 0000 lds r30,EE_Parameter |
347 035a F0E0 ldi r31,lo8(0) |
348 035c EE0F lsl r30 |
349 035e FF1F rol r31 |
350 0360 E050 subi r30,lo8(-(PPM_in)) |
351 0362 F040 sbci r31,hi8(-(PPM_in)) |
352 0364 0190 ld __tmp_reg__,Z+ |
353 0366 F081 ld r31,Z |
354 0368 E02D mov r30,__tmp_reg__ |
355 036a 8FEF ldi r24,hi8(-127) |
356 036c E138 cpi r30,lo8(-127) |
357 036e F807 cpc r31,r24 |
358 0370 04F4 brge .L21 |
359 0372 E1E8 ldi r30,lo8(-127) |
360 0374 FFEF ldi r31,hi8(-127) |
361 .L21: |
362 /* #APP */ |
363 ; 212 "spi.c" 1 |
364 0376 7894 sei |
365 ; 0 "" 2 |
366 /* #NOAPP */ |
367 0378 E038 cpi r30,128 |
368 037a F105 cpc r31,__zero_reg__ |
369 037c 04F0 brlt .L22 |
370 037e EFE7 ldi r30,lo8(127) |
371 0380 F0E0 ldi r31,hi8(127) |
372 .L22: |
373 0382 E093 0000 sts ToNaviCtrl+22,r30 |
374 0386 8091 0000 lds r24,Poti1 |
375 038a 8093 0000 sts ToNaviCtrl+23,r24 |
376 038e 8091 0000 lds r24,Poti2 |
377 0392 8093 0000 sts ToNaviCtrl+24,r24 |
378 0396 8091 0000 lds r24,Poti3 |
379 039a 8093 0000 sts ToNaviCtrl+25,r24 |
380 039e 8091 0000 lds r24,Poti4 |
381 03a2 8093 0000 sts ToNaviCtrl+26,r24 |
382 03a6 8091 0000 lds r24,SenderOkay |
383 03aa 8093 0000 sts ToNaviCtrl+27,r24 |
384 03ae 8091 0000 lds r24,SenderRSSI |
385 03b2 8093 0000 sts ToNaviCtrl+28,r24 |
386 03b6 2091 0000 lds r18,DebugOut+16 |
387 03ba 3091 0000 lds r19,DebugOut+17 |
388 03be C901 movw r24,r18 |
389 03c0 97FD sbrc r25,7 |
390 03c2 00C0 rjmp .L41 |
391 .L23: |
392 03c4 9595 asr r25 |
393 03c6 8795 ror r24 |
394 03c8 9595 asr r25 |
395 03ca 8795 ror r24 |
396 03cc 8093 0000 sts ToNaviCtrl+29,r24 |
397 03d0 8091 0000 lds r24,SPI_RxDataValid |
398 03d4 8823 tst r24 |
399 03d6 01F0 breq .+2 |
400 03d8 00C0 rjmp .L42 |
401 .L26: |
402 03da 1092 0000 sts (GPS_Nick)+1,__zero_reg__ |
403 03de 1092 0000 sts GPS_Nick,__zero_reg__ |
404 03e2 1092 0000 sts (GPS_Roll)+1,__zero_reg__ |
405 03e6 1092 0000 sts GPS_Roll,__zero_reg__ |
406 03ea 1F91 pop r17 |
407 03ec 0F91 pop r16 |
408 03ee FF90 pop r15 |
409 03f0 EF90 pop r14 |
410 03f2 0895 ret |
411 .L36: |
412 03f4 2D5F subi r18,lo8(-(3)) |
413 03f6 3F4F sbci r19,hi8(-(3)) |
414 03f8 00C0 rjmp .L5 |
415 .L35: |
416 03fa 2D5F subi r18,lo8(-(3)) |
417 03fc 3F4F sbci r19,hi8(-(3)) |
418 03fe 00C0 rjmp .L4 |
419 .L38: |
420 0400 8F30 cpi r24,lo8(15) |
421 0402 01F0 breq .+2 |
422 0404 00C0 rjmp .L6 |
423 0406 8091 0000 lds r24,EE_Parameter+47 |
424 040a 8093 0000 sts ToNaviCtrl+19,r24 |
425 040e 8091 0000 lds r24,EE_Parameter+87 |
426 0412 8093 0000 sts ToNaviCtrl+20,r24 |
427 0416 8091 0000 lds r24,Parameter_ServoNickControl |
428 041a 8093 0000 sts ToNaviCtrl+21,r24 |
429 041e 8091 0000 lds r24,EE_Parameter+40 |
430 0422 8093 0000 sts ToNaviCtrl+22,r24 |
431 0426 8091 0000 lds r24,EE_Parameter+41 |
432 042a 8093 0000 sts ToNaviCtrl+23,r24 |
433 042e 8091 0000 lds r24,EE_Parameter+42 |
434 0432 8093 0000 sts ToNaviCtrl+24,r24 |
435 0436 8091 0000 lds r24,Parameter_ServoRollControl |
436 043a 8093 0000 sts ToNaviCtrl+25,r24 |
437 043e 8091 0000 lds r24,EE_Parameter+44 |
438 0442 8093 0000 sts ToNaviCtrl+26,r24 |
439 0446 8091 0000 lds r24,EE_Parameter+45 |
440 044a 8093 0000 sts ToNaviCtrl+27,r24 |
441 044e 8091 0000 lds r24,EE_Parameter+46 |
442 0452 8093 0000 sts ToNaviCtrl+28,r24 |
443 0456 00C0 rjmp .L6 |
444 .L39: |
445 0458 8091 0000 lds r24,EE_Parameter+8 |
446 045c 85FF sbrs r24,5 |
447 045e 00C0 rjmp .L27 |
448 0460 3093 0000 sts (GPS_Nick)+1,r19 |
449 0464 2093 0000 sts GPS_Nick,r18 |
450 0468 5093 0000 sts (GPS_Roll)+1,r21 |
451 046c 4093 0000 sts GPS_Roll,r20 |
452 0470 8AEF ldi r24,lo8(-6) |
453 0472 8093 0000 sts NaviDataOkay,r24 |
454 0476 00C0 rjmp .L27 |
455 .L40: |
456 0478 3093 0000 sts (beeptime)+1,r19 |
457 047c 2093 0000 sts beeptime,r18 |
458 0480 00C0 rjmp .L29 |
459 .L11: |
460 0482 8091 0000 lds r24,SPI_VersionInfo |
461 0486 8093 0000 sts ToNaviCtrl+19,r24 |
462 048a 8091 0000 lds r24,SPI_VersionInfo+1 |
463 048e 8093 0000 sts ToNaviCtrl+20,r24 |
464 0492 8091 0000 lds r24,SPI_VersionInfo+2 |
465 0496 8093 0000 sts ToNaviCtrl+21,r24 |
466 049a 8091 0000 lds r24,SPI_VersionInfo+3 |
467 049e 8093 0000 sts ToNaviCtrl+22,r24 |
468 04a2 8091 0000 lds r24,PlatinenVersion |
469 04a6 8093 0000 sts ToNaviCtrl+23,r24 |
470 04aa 00C0 rjmp .L6 |
471 .L9: |
472 04ac 8091 0000 lds r24,WinkelOut+6 |
473 04b0 8630 cpi r24,lo8(6) |
474 04b2 00F4 brsh .+2 |
475 04b4 00C0 rjmp .L24 |
476 04b6 1092 0000 sts WinkelOut+6,__zero_reg__ |
477 04ba 85E0 ldi r24,lo8(5) |
478 04bc 8093 0000 sts ToNaviCtrl+19,r24 |
479 .L25: |
480 04c0 8091 0000 lds r24,EE_Parameter+84 |
481 04c4 8093 0000 sts ToNaviCtrl+20,r24 |
482 04c8 8091 0000 lds r24,DebugOut+12 |
483 04cc 9091 0000 lds r25,(DebugOut+12)+1 |
484 04d0 9093 0000 sts (ToNaviCtrl+21)+1,r25 |
485 04d4 8093 0000 sts ToNaviCtrl+21,r24 |
486 04d8 6091 0000 lds r22,SollHoehe |
487 04dc 7091 0000 lds r23,(SollHoehe)+1 |
488 04e0 8091 0000 lds r24,(SollHoehe)+2 |
489 04e4 9091 0000 lds r25,(SollHoehe)+3 |
490 04e8 25E0 ldi r18,lo8(5) |
491 04ea 30E0 ldi r19,hi8(5) |
492 04ec 40E0 ldi r20,hlo8(5) |
493 04ee 50E0 ldi r21,hhi8(5) |
494 04f0 0E94 0000 call __divmodsi4 |
495 04f4 3093 0000 sts (ToNaviCtrl+23)+1,r19 |
496 04f8 2093 0000 sts ToNaviCtrl+23,r18 |
497 04fc 8091 0000 lds r24,EE_Parameter+74 |
498 0500 8093 0000 sts ToNaviCtrl+25,r24 |
499 0504 8091 0000 lds r24,EE_Parameter+75 |
500 0508 8093 0000 sts ToNaviCtrl+26,r24 |
501 050c 8091 0000 lds r24,EE_Parameter+76 |
502 0510 8093 0000 sts ToNaviCtrl+27,r24 |
503 0514 00C0 rjmp .L6 |
504 .L7: |
505 0516 8091 0000 lds r24,Parameter_UserParam1 |
506 051a 8093 0000 sts ToNaviCtrl+19,r24 |
507 051e 8091 0000 lds r24,Parameter_UserParam2 |
508 0522 8093 0000 sts ToNaviCtrl+20,r24 |
509 0526 8091 0000 lds r24,Parameter_UserParam3 |
510 052a 8093 0000 sts ToNaviCtrl+21,r24 |
511 052e 8091 0000 lds r24,Parameter_UserParam4 |
512 0532 8093 0000 sts ToNaviCtrl+22,r24 |
513 0536 8091 0000 lds r24,Parameter_UserParam5 |
514 053a 8093 0000 sts ToNaviCtrl+23,r24 |
515 053e 8091 0000 lds r24,Parameter_UserParam6 |
516 0542 8093 0000 sts ToNaviCtrl+24,r24 |
517 0546 8091 0000 lds r24,Parameter_UserParam7 |
518 054a 8093 0000 sts ToNaviCtrl+25,r24 |
519 054e 8091 0000 lds r24,Parameter_UserParam8 |
520 0552 8093 0000 sts ToNaviCtrl+26,r24 |
521 0556 8091 0000 lds r24,MikroKopterFlags |
522 055a 8093 0000 sts ToNaviCtrl+27,r24 |
523 055e 8091 0000 lds r24,MikroKopterFlags |
524 0562 837F andi r24,lo8(-13) |
525 0564 8093 0000 sts MikroKopterFlags,r24 |
526 0568 8091 0000 lds r24,UBat |
527 056c 9091 0000 lds r25,(UBat)+1 |
528 0570 8093 0000 sts ToNaviCtrl+28,r24 |
529 0574 8091 0000 lds r24,BattLowVoltageWarning |
530 0578 8093 0000 sts ToNaviCtrl+29,r24 |
531 .L14: |
532 057c F999 sbic 63-32,1 |
533 057e 00C0 rjmp .L14 |
534 0580 80E0 ldi r24,lo8(EEPromArray+2) |
535 0582 90E0 ldi r25,hi8(EEPromArray+2) |
536 0584 92BD out (65)+1-32,r25 |
537 0586 81BD out 65-32,r24 |
538 /* #APP */ |
539 ; 208 "c:/winavr-20090313/lib/gcc/../../avr/include/avr/eeprom.h" 1 |
540 /* START EEPROM READ CRITICAL SECTION */ |
541 0588 F89A sbi 31, 0 |
542 058a 80B5 in r24, 32 |
543 /* END EEPROM READ CRITICAL SECTION */ |
544 |
545 ; 0 "" 2 |
546 /* #NOAPP */ |
547 058c 8093 0000 sts ToNaviCtrl+30,r24 |
548 0590 00C0 rjmp .L6 |
549 .L24: |
550 0592 8093 0000 sts ToNaviCtrl+19,r24 |
551 0596 00C0 rjmp .L25 |
552 .L41: |
553 0598 0396 adiw r24,3 |
554 059a 00C0 rjmp .L23 |
556 .global SPI_StartTransmitPacket |
558 SPI_StartTransmitPacket: |
559 /* prologue: function */ |
560 /* frame size = 0 */ |
561 059c 8091 0000 lds r24,SPITransferCompleted |
562 05a0 8823 tst r24 |
563 05a2 01F4 brne .+2 |
564 05a4 00C0 rjmp .L46 |
565 05a6 4598 cbi 40-32,5 |
566 05a8 80E0 ldi r24,lo8(ToNaviCtrl) |
567 05aa 90E0 ldi r25,hi8(ToNaviCtrl) |
568 05ac 9093 0000 sts (SPI_TX_Buffer)+1,r25 |
569 05b0 8093 0000 sts SPI_TX_Buffer,r24 |
570 05b4 9091 0000 lds r25,SPI_CommandCounter |
571 05b8 E92F mov r30,r25 |
572 05ba F0E0 ldi r31,lo8(0) |
573 05bc E050 subi r30,lo8(-(SPI_CommandSequence)) |
574 05be F040 sbci r31,hi8(-(SPI_CommandSequence)) |
575 05c0 8081 ld r24,Z |
576 05c2 8093 0000 sts ToNaviCtrl+2,r24 |
577 05c6 9F5F subi r25,lo8(-(1)) |
578 05c8 9093 0000 sts SPI_CommandCounter,r25 |
579 05cc 9730 cpi r25,lo8(7) |
580 05ce 00F0 brlo .L45 |
581 05d0 1092 0000 sts SPI_CommandCounter,__zero_reg__ |
582 .L45: |
583 05d4 1092 0000 sts SPITransferCompleted,__zero_reg__ |
584 05d8 0E94 0000 call UpdateSPI_Buffer |
585 05dc 81E0 ldi r24,lo8(1) |
586 05de 8093 0000 sts SPI_BufferIndex,r24 |
587 /* #APP */ |
588 ; 75 "spi.c" 1 |
589 05e2 0000 nop |
590 ; 0 "" 2 |
591 ; 75 "spi.c" 1 |
592 05e4 0000 nop |
593 ; 0 "" 2 |
594 ; 75 "spi.c" 1 |
595 05e6 0000 nop |
596 ; 0 "" 2 |
597 ; 75 "spi.c" 1 |
598 05e8 0000 nop |
599 ; 0 "" 2 |
600 ; 75 "spi.c" 1 |
601 05ea 0000 nop |
602 ; 0 "" 2 |
603 ; 75 "spi.c" 1 |
604 05ec 0000 nop |
605 ; 0 "" 2 |
606 ; 75 "spi.c" 1 |
607 05ee 0000 nop |
608 ; 0 "" 2 |
609 ; 75 "spi.c" 1 |
610 05f0 0000 nop |
611 ; 0 "" 2 |
612 ; 76 "spi.c" 1 |
613 05f2 0000 nop |
614 ; 0 "" 2 |
615 ; 76 "spi.c" 1 |
616 05f4 0000 nop |
617 ; 0 "" 2 |
618 ; 76 "spi.c" 1 |
619 05f6 0000 nop |
620 ; 0 "" 2 |
621 ; 76 "spi.c" 1 |
622 05f8 0000 nop |
623 ; 0 "" 2 |
624 ; 76 "spi.c" 1 |
625 05fa 0000 nop |
626 ; 0 "" 2 |
627 ; 76 "spi.c" 1 |
628 05fc 0000 nop |
629 ; 0 "" 2 |
630 ; 76 "spi.c" 1 |
631 05fe 0000 nop |
632 ; 0 "" 2 |
633 ; 76 "spi.c" 1 |
634 0600 0000 nop |
635 ; 0 "" 2 |
636 ; 77 "spi.c" 1 |
637 0602 0000 nop |
638 ; 0 "" 2 |
639 ; 77 "spi.c" 1 |
640 0604 0000 nop |
641 ; 0 "" 2 |
642 ; 77 "spi.c" 1 |
643 0606 0000 nop |
644 ; 0 "" 2 |
645 ; 77 "spi.c" 1 |
646 0608 0000 nop |
647 ; 0 "" 2 |
648 ; 77 "spi.c" 1 |
649 060a 0000 nop |
650 ; 0 "" 2 |
651 ; 77 "spi.c" 1 |
652 060c 0000 nop |
653 ; 0 "" 2 |
654 ; 77 "spi.c" 1 |
655 060e 0000 nop |
656 ; 0 "" 2 |
657 ; 77 "spi.c" 1 |
658 0610 0000 nop |
659 ; 0 "" 2 |
660 /* #NOAPP */ |
661 0612 8091 0000 lds r24,ToNaviCtrl |
662 0616 8093 0000 sts ToNaviCtrl+31,r24 |
663 061a 8EBD out 78-32,r24 |
664 .L46: |
665 061c 0895 ret |
667 .global SPI_TransmitByte |
669 SPI_TransmitByte: |
670 /* prologue: function */ |
671 /* frame size = 0 */ |
672 061e 8091 0000 lds r24,SPITransferCompleted |
673 0622 8823 tst r24 |
674 0624 01F4 brne .L60 |
675 0626 0DB4 in __tmp_reg__,77-32 |
676 0628 07FE sbrs __tmp_reg__,7 |
677 .L60: |
678 062a 0895 ret |
679 .L62: |
680 062c 84E0 ldi r24,lo8(4) |
681 062e 8093 0000 sts SendSPI,r24 |
682 0632 459A sbi 40-32,5 |
683 0634 9EB5 in r25,78-32 |
684 0636 8091 0000 lds r24,SPI_RXState.2167 |
685 063a 8130 cpi r24,lo8(1) |
686 063c 01F4 brne .+2 |
687 063e 00C0 rjmp .L51 |
688 0640 8130 cpi r24,lo8(1) |
689 0642 00F0 brlo .+2 |
690 0644 00C0 rjmp .L63 |
691 0646 1092 0000 sts SPI_RxBufferIndex,__zero_reg__ |
692 064a 9093 0000 sts rxchksum.2169,r25 |
693 064e 9138 cpi r25,lo8(-127) |
694 0650 01F4 brne .+2 |
695 0652 00C0 rjmp .L64 |
696 .L49: |
697 0654 2091 0000 lds r18,SPI_BufferIndex |
698 0658 2032 cpi r18,lo8(32) |
699 065a 00F0 brlo .+2 |
700 065c 00C0 rjmp .L58 |
701 065e 4598 cbi 40-32,5 |
702 /* #APP */ |
703 ; 143 "spi.c" 1 |
704 0660 0000 nop |
705 ; 0 "" 2 |
706 ; 143 "spi.c" 1 |
707 0662 0000 nop |
708 ; 0 "" 2 |
709 ; 143 "spi.c" 1 |
710 0664 0000 nop |
711 ; 0 "" 2 |
712 ; 143 "spi.c" 1 |
713 0666 0000 nop |
714 ; 0 "" 2 |
715 ; 143 "spi.c" 1 |
716 0668 0000 nop |
717 ; 0 "" 2 |
718 ; 143 "spi.c" 1 |
719 066a 0000 nop |
720 ; 0 "" 2 |
721 ; 143 "spi.c" 1 |
722 066c 0000 nop |
723 ; 0 "" 2 |
724 ; 143 "spi.c" 1 |
725 066e 0000 nop |
726 ; 0 "" 2 |
727 ; 144 "spi.c" 1 |
728 0670 0000 nop |
729 ; 0 "" 2 |
730 ; 144 "spi.c" 1 |
731 0672 0000 nop |
732 ; 0 "" 2 |
733 ; 144 "spi.c" 1 |
734 0674 0000 nop |
735 ; 0 "" 2 |
736 ; 144 "spi.c" 1 |
737 0676 0000 nop |
738 ; 0 "" 2 |
739 ; 144 "spi.c" 1 |
740 0678 0000 nop |
741 ; 0 "" 2 |
742 ; 144 "spi.c" 1 |
743 067a 0000 nop |
744 ; 0 "" 2 |
745 ; 144 "spi.c" 1 |
746 067c 0000 nop |
747 ; 0 "" 2 |
748 ; 144 "spi.c" 1 |
749 067e 0000 nop |
750 ; 0 "" 2 |
751 ; 145 "spi.c" 1 |
752 0680 0000 nop |
753 ; 0 "" 2 |
754 ; 145 "spi.c" 1 |
755 0682 0000 nop |
756 ; 0 "" 2 |
757 ; 145 "spi.c" 1 |
758 0684 0000 nop |
759 ; 0 "" 2 |
760 ; 145 "spi.c" 1 |
761 0686 0000 nop |
762 ; 0 "" 2 |
763 ; 145 "spi.c" 1 |
764 0688 0000 nop |
765 ; 0 "" 2 |
766 ; 145 "spi.c" 1 |
767 068a 0000 nop |
768 ; 0 "" 2 |
769 ; 145 "spi.c" 1 |
770 068c 0000 nop |
771 ; 0 "" 2 |
772 ; 145 "spi.c" 1 |
773 068e 0000 nop |
774 ; 0 "" 2 |
775 /* #NOAPP */ |
776 0690 E091 0000 lds r30,SPI_TX_Buffer |
777 0694 F091 0000 lds r31,(SPI_TX_Buffer)+1 |
778 0698 E20F add r30,r18 |
779 069a F11D adc r31,__zero_reg__ |
780 069c 8081 ld r24,Z |
781 069e 8EBD out 78-32,r24 |
782 06a0 9091 0000 lds r25,ToNaviCtrl+31 |
783 06a4 890F add r24,r25 |
784 06a6 8093 0000 sts ToNaviCtrl+31,r24 |
785 .L59: |
786 06aa 2F5F subi r18,lo8(-(1)) |
787 06ac 2093 0000 sts SPI_BufferIndex,r18 |
788 06b0 0895 ret |
789 .L58: |
790 06b2 81E0 ldi r24,lo8(1) |
791 06b4 8093 0000 sts SPITransferCompleted,r24 |
792 06b8 00C0 rjmp .L59 |
793 .L63: |
794 06ba 8230 cpi r24,lo8(2) |
795 06bc 01F0 breq .+2 |
796 06be 00C0 rjmp .L49 |
797 06c0 8091 0000 lds r24,SPI_RxBufferIndex |
798 06c4 E82F mov r30,r24 |
799 06c6 F0E0 ldi r31,lo8(0) |
800 06c8 E050 subi r30,lo8(-(SPI_Buffer)) |
801 06ca F040 sbci r31,hi8(-(SPI_Buffer)) |
802 06cc 9083 st Z,r25 |
803 06ce 8F5F subi r24,lo8(-(1)) |
804 06d0 8093 0000 sts SPI_RxBufferIndex,r24 |
805 06d4 8A31 cpi r24,lo8(26) |
806 06d6 00F0 brlo .L54 |
807 06d8 8091 0000 lds r24,rxchksum.2169 |
808 06dc 9817 cp r25,r24 |
809 06de 01F0 breq .L65 |
810 06e0 1092 0000 sts SPI_RxDataValid,__zero_reg__ |
811 .L57: |
812 06e4 1092 0000 sts SPI_RXState.2167,__zero_reg__ |
813 06e8 00C0 rjmp .L49 |
814 .L64: |
815 06ea 81E0 ldi r24,lo8(1) |
816 06ec 8093 0000 sts SPI_RXState.2167,r24 |
817 06f0 00C0 rjmp .L49 |
818 .L51: |
819 06f2 9535 cpi r25,lo8(85) |
820 06f4 01F4 brne .L57 |
821 06f6 8091 0000 lds r24,rxchksum.2169 |
822 06fa 8B5A subi r24,lo8(-(85)) |
823 06fc 8093 0000 sts rxchksum.2169,r24 |
824 0700 82E0 ldi r24,lo8(2) |
825 0702 8093 0000 sts SPI_RXState.2167,r24 |
826 0706 00C0 rjmp .L49 |
827 .L54: |
828 0708 8091 0000 lds r24,rxchksum.2169 |
829 070c 890F add r24,r25 |
830 070e 8093 0000 sts rxchksum.2169,r24 |
831 0712 00C0 rjmp .L49 |
832 .L65: |
833 0714 A0E0 ldi r26,lo8(FromNaviCtrl) |
834 0716 B0E0 ldi r27,hi8(FromNaviCtrl) |
835 0718 E0E0 ldi r30,lo8(SPI_Buffer) |
836 071a F0E0 ldi r31,hi8(SPI_Buffer) |
837 071c 8AE1 ldi r24,lo8(26) |
838 .L56: |
839 071e 0190 ld r0,Z+ |
840 0720 0D92 st X+,r0 |
841 0722 8150 subi r24,lo8(-(-1)) |
842 0724 01F4 brne .L56 |
843 0726 81E0 ldi r24,lo8(1) |
844 0728 8093 0000 sts SPI_RxDataValid,r24 |
845 072c 00C0 rjmp .L57 |
847 .global NaviDataOkay |
848 .global NaviDataOkay |
849 .section .bss |
852 NaviDataOkay: |
853 0000 00 .skip 1,0 |
854 .global SPI_CommandSequence |
855 .data |
858 SPI_CommandSequence: |
859 0000 0A .byte 10 |
860 0001 0B .byte 11 |
861 0002 0D .byte 13 |
862 0003 0B .byte 11 |
863 0004 0C .byte 12 |
864 0005 0E .byte 14 |
865 0006 0F .byte 15 |
866 .global SPI_CommandCounter |
867 .global SPI_CommandCounter |
868 .section .bss |
871 SPI_CommandCounter: |
872 0001 00 .skip 1,0 |
873 .lcomm rxchksum.2169,1 |
874 .lcomm SPI_RXState.2167,1 |
875 .comm Mixer,77,1 |
876 .comm FromNaviCtrl_Value,5,1 |
877 .comm ToNaviCtrl,32,1 |
878 .comm FromNaviCtrl,26,1 |
879 .comm SPI_VersionInfo,4,1 |
880 .comm SPI_BufferIndex,1,1 |
881 .comm SPI_RxBufferIndex,1,1 |
882 .comm SPI_Buffer,26,1 |
883 .comm SPI_TX_Buffer,2,1 |
884 .comm SPITransferCompleted,1,1 |
885 .comm SPI_ChkSum,1,1 |
886 .comm SPI_RxDataValid,1,1 |
887 .global __do_copy_data |
888 .global __do_clear_bss |
DEFINED SYMBOLS |
*ABS*:00000000 spi.c |
C:\Users\Arthur\AppData\Local\Temp/ccpqxFQf.s:2 *ABS*:0000003f __SREG__ |
C:\Users\Arthur\AppData\Local\Temp/ccpqxFQf.s:3 *ABS*:0000003e __SP_H__ |
C:\Users\Arthur\AppData\Local\Temp/ccpqxFQf.s:4 *ABS*:0000003d __SP_L__ |
C:\Users\Arthur\AppData\Local\Temp/ccpqxFQf.s:5 *ABS*:00000034 __CCP__ |
C:\Users\Arthur\AppData\Local\Temp/ccpqxFQf.s:6 *ABS*:00000000 __tmp_reg__ |
C:\Users\Arthur\AppData\Local\Temp/ccpqxFQf.s:7 *ABS*:00000001 __zero_reg__ |
C:\Users\Arthur\AppData\Local\Temp/ccpqxFQf.s:11 .text:00000000 SPI_MasterInit |
*COM*:00000001 SPITransferCompleted |
*COM*:00000020 ToNaviCtrl |
*COM*:00000005 FromNaviCtrl_Value |
*COM*:00000001 SPI_RxDataValid |
*COM*:00000004 SPI_VersionInfo |
C:\Users\Arthur\AppData\Local\Temp/ccpqxFQf.s:47 .text:00000056 UpdateSPI_Buffer |
*COM*:0000001a FromNaviCtrl |
C:\Users\Arthur\AppData\Local\Temp/ccpqxFQf.s:852 .bss:00000000 NaviDataOkay |
C:\Users\Arthur\AppData\Local\Temp/ccpqxFQf.s:558 .text:0000059c SPI_StartTransmitPacket |
*COM*:00000002 SPI_TX_Buffer |
C:\Users\Arthur\AppData\Local\Temp/ccpqxFQf.s:871 .bss:00000001 SPI_CommandCounter |
C:\Users\Arthur\AppData\Local\Temp/ccpqxFQf.s:858 .data:00000000 SPI_CommandSequence |
*COM*:00000001 SPI_BufferIndex |
C:\Users\Arthur\AppData\Local\Temp/ccpqxFQf.s:669 .text:0000061e SPI_TransmitByte |
C:\Users\Arthur\AppData\Local\Temp/ccpqxFQf.s:873 .bss:00000003 SPI_RXState.2167 |
*COM*:00000001 SPI_RxBufferIndex |
.bss:00000002 rxchksum.2169 |
*COM*:0000001a SPI_Buffer |
*COM*:0000004d Mixer |
*COM*:00000001 SPI_ChkSum |
|
UNDEFINED SYMBOLS |
EE_Parameter |
IntegralNick |
__divmodsi4 |
IntegralRoll |
ErsatzKompass |
__mulsi3 |
GIER_GRAD_FAKTOR |
NaviCntAcc |
NaviAccNick |
__divmodhi4 |
NaviAccRoll |
KompassValue |
KompassStartwert |
KompassRichtung |
beeptime |
WinkelOut |
PPM_in |
Poti1 |
Poti2 |
Poti3 |
Poti4 |
SenderOkay |
SenderRSSI |
DebugOut |
GPS_Nick |
GPS_Roll |
Parameter_ServoNickControl |
Parameter_ServoRollControl |
PlatinenVersion |
SollHoehe |
Parameter_UserParam1 |
Parameter_UserParam2 |
Parameter_UserParam3 |
Parameter_UserParam4 |
Parameter_UserParam5 |
Parameter_UserParam6 |
Parameter_UserParam7 |
Parameter_UserParam8 |
MikroKopterFlags |
UBat |
BattLowVoltageWarning |
EEPromArray |
SendSPI |
__do_copy_data |
__do_clear_bss |