Subversion Repositories BL-Ctrl

Compare Revisions

Ignore whitespace Rev 65 → Rev 66

/branches/V0.37_neueStruktur/out/PPM_Decode.lst
0,0 → 1,367
1 .file "PPM_Decode.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
11 .text
12 .Ltext0:
100 .global InitPPM
102 InitPPM:
103 .stabd 46,0,0
1:src/PPM_Decode.c **** /*############################################################################
2:src/PPM_Decode.c **** + Regler für Brushless-Motoren
3:src/PPM_Decode.c **** + ATMEGA8 mit 8MHz
4:src/PPM_Decode.c **** + (c) 01.2007 Holger Buss
5:src/PPM_Decode.c **** + Nur für den privaten Gebrauch
6:src/PPM_Decode.c **** + Keine Garantie auf Fehlerfreiheit
7:src/PPM_Decode.c **** + Kommerzielle Nutzung nur mit meiner Zustimmung
8:src/PPM_Decode.c **** + Der Code ist für die Hardware BL_Ctrl V1.0 entwickelt worden
9:src/PPM_Decode.c **** + www.mikrocontroller.com
10:src/PPM_Decode.c **** ############################################################################*/
11:src/PPM_Decode.c **** #include "main.h"
12:src/PPM_Decode.c **** volatile unsigned int PPM_Signal = 0;
13:src/PPM_Decode.c **** volatile unsigned char Timer1Overflow = 0;
14:src/PPM_Decode.c **** volatile unsigned char PPM_Timeout = 0, anz_ppm_werte = 0; // Ungültig, wenn Null
15:src/PPM_Decode.c ****
16:src/PPM_Decode.c **** //############################################################################
17:src/PPM_Decode.c **** //
18:src/PPM_Decode.c **** void InitPPM(void)
19:src/PPM_Decode.c **** //############################################################################
20:src/PPM_Decode.c **** {
105 .LM0:
106 .LFBB1:
107 /* prologue: frame size=0 */
108 /* prologue end (size=0) */
21:src/PPM_Decode.c **** TCCR1B |= (1<<ICES1)|(1<<ICNC1);
110 .LM1:
111 0000 8EB5 in r24,78-0x20
112 0002 806C ori r24,lo8(-64)
113 0004 8EBD out 78-0x20,r24
22:src/PPM_Decode.c **** ICP_POS_FLANKE;
115 .LM2:
116 0006 8EB5 in r24,78-0x20
117 0008 8064 ori r24,lo8(64)
118 000a 8EBD out 78-0x20,r24
23:src/PPM_Decode.c **** ICP_INT_ENABLE;
120 .LM3:
121 000c 89B7 in r24,89-0x20
122 000e 8062 ori r24,lo8(32)
123 0010 89BF out 89-0x20,r24
24:src/PPM_Decode.c **** TIMER1_INT_ENABLE;
125 .LM4:
126 0012 89B7 in r24,89-0x20
127 0014 8460 ori r24,lo8(4)
128 0016 89BF out 89-0x20,r24
129 /* epilogue: frame size=0 */
130 0018 0895 ret
131 /* epilogue end (size=1) */
132 /* function InitPPM size 13 (12) */
134 .Lscope1:
136 .stabd 78,0,0
138 .global __vector_8
140 __vector_8:
141 .stabd 46,0,0
25:src/PPM_Decode.c **** }
26:src/PPM_Decode.c ****
27:src/PPM_Decode.c **** //############################################################################
28:src/PPM_Decode.c **** //
29:src/PPM_Decode.c **** SIGNAL(SIG_OVERFLOW1)
30:src/PPM_Decode.c **** //############################################################################
31:src/PPM_Decode.c **** {
143 .LM5:
144 .LFBB2:
145 /* prologue: frame size=0 */
146 001a 1F92 push __zero_reg__
147 001c 0F92 push __tmp_reg__
148 001e 0FB6 in __tmp_reg__,__SREG__
149 0020 0F92 push __tmp_reg__
150 0022 1124 clr __zero_reg__
151 0024 8F93 push r24
152 /* prologue end (size=6) */
32:src/PPM_Decode.c **** Timer1Overflow++;
154 .LM6:
155 0026 8091 0000 lds r24,Timer1Overflow
156 002a 8F5F subi r24,lo8(-(1))
157 002c 8093 0000 sts Timer1Overflow,r24
158 /* epilogue: frame size=0 */
159 0030 8F91 pop r24
160 0032 0F90 pop __tmp_reg__
161 0034 0FBE out __SREG__,__tmp_reg__
162 0036 0F90 pop __tmp_reg__
163 0038 1F90 pop __zero_reg__
164 003a 1895 reti
165 /* epilogue end (size=6) */
166 /* function __vector_8 size 17 (5) */
168 .Lscope2:
170 .stabd 78,0,0
172 .global __vector_5
174 __vector_5:
175 .stabd 46,0,0
33:src/PPM_Decode.c **** }
34:src/PPM_Decode.c ****
35:src/PPM_Decode.c **** //############################################################################
36:src/PPM_Decode.c **** //
37:src/PPM_Decode.c **** SIGNAL(SIG_INPUT_CAPTURE1)
38:src/PPM_Decode.c **** //############################################################################
39:src/PPM_Decode.c **** {
177 .LM7:
178 .LFBB3:
179 /* prologue: frame size=0 */
180 003c 1F92 push __zero_reg__
181 003e 0F92 push __tmp_reg__
182 0040 0FB6 in __tmp_reg__,__SREG__
183 0042 0F92 push __tmp_reg__
184 0044 1124 clr __zero_reg__
185 0046 2F93 push r18
186 0048 3F93 push r19
187 004a 4F93 push r20
188 004c 5F93 push r21
189 004e 8F93 push r24
190 0050 9F93 push r25
191 /* prologue end (size=11) */
40:src/PPM_Decode.c **** static unsigned int tim_alt;
41:src/PPM_Decode.c **** static unsigned int ppm;
42:src/PPM_Decode.c **** if(TCCR1B & (1<<ICES1)) // Positive Flanke
193 .LM8:
194 0052 0EB4 in __tmp_reg__,78-0x20
195 0054 06FE sbrs __tmp_reg__,6
196 0056 00C0 rjmp .L6
43:src/PPM_Decode.c **** {
44:src/PPM_Decode.c **** Timer1Overflow = 0;
198 .LM9:
199 0058 1092 0000 sts Timer1Overflow,__zero_reg__
45:src/PPM_Decode.c **** tim_alt = ICR1;
201 .LM10:
202 005c 86B5 in r24,70-0x20
203 005e 97B5 in r25,(70)+1-0x20
204 0060 9093 0000 sts (tim_alt.2079)+1,r25
205 0064 8093 0000 sts tim_alt.2079,r24
46:src/PPM_Decode.c **** ICP_NEG_FLANKE;
207 .LM11:
208 0068 8EB5 in r24,78-0x20
209 006a 8F7B andi r24,lo8(-65)
210 006c 8EBD out 78-0x20,r24
47:src/PPM_Decode.c **** PPM_Timeout = 100;
212 .LM12:
213 006e 84E6 ldi r24,lo8(100)
214 0070 8093 0000 sts PPM_Timeout,r24
215 0074 00C0 rjmp .L17
216 .L6:
48:src/PPM_Decode.c **** }
49:src/PPM_Decode.c **** else // Negative Flanke
50:src/PPM_Decode.c **** {
51:src/PPM_Decode.c **** ICP_POS_FLANKE;
218 .LM13:
219 0076 8EB5 in r24,78-0x20
220 0078 8064 ori r24,lo8(64)
221 007a 8EBD out 78-0x20,r24
52:src/PPM_Decode.c **** #ifdef _32KHZ
53:src/PPM_Decode.c **** ppm = (ICR1 - tim_alt + (int) Timer1Overflow * 256) / 32;
54:src/PPM_Decode.c **** #endif
55:src/PPM_Decode.c **** #ifdef _16KHZ
56:src/PPM_Decode.c **** ppm = (ICR1 - tim_alt + (int) Timer1Overflow * 512) / 32;
223 .LM14:
224 007c 86B5 in r24,70-0x20
225 007e 97B5 in r25,(70)+1-0x20
226 0080 2091 0000 lds r18,Timer1Overflow
227 0084 4091 0000 lds r20,tim_alt.2079
228 0088 5091 0000 lds r21,(tim_alt.2079)+1
229 008c 841B sub r24,r20
230 008e 950B sbc r25,r21
231 0090 3327 clr r19
232 0092 322F mov r19,r18
233 0094 2227 clr r18
234 0096 330F lsl r19
235 0098 820F add r24,r18
236 009a 931F adc r25,r19
237 009c 6894 set
238 009e 14F8 bld __zero_reg__,5-1
239 00a0 9695 1: lsr r25
240 00a2 8795 ror r24
241 00a4 1694 lsr __zero_reg__
242 00a6 01F4 brne 1b
243 00a8 9093 0000 sts (ppm.2080)+1,r25
244 00ac 8093 0000 sts ppm.2080,r24
57:src/PPM_Decode.c **** #endif
58:src/PPM_Decode.c **** if(ppm < 280) ppm = 280;
246 .LM15:
247 00b0 8851 subi r24,lo8(280)
248 00b2 9140 sbci r25,hi8(280)
249 00b4 00F4 brsh .L9
250 00b6 88E1 ldi r24,lo8(280)
251 00b8 91E0 ldi r25,hi8(280)
252 00ba 9093 0000 sts (ppm.2080)+1,r25
253 00be 8093 0000 sts ppm.2080,r24
254 .L9:
59:src/PPM_Decode.c **** ppm -= 280;
256 .LM16:
257 00c2 4091 0000 lds r20,ppm.2080
258 00c6 5091 0000 lds r21,(ppm.2080)+1
259 00ca 4851 subi r20,lo8(-(-280))
260 00cc 5140 sbci r21,hi8(-(-280))
60:src/PPM_Decode.c **** if(PPM_Signal < ppm) PPM_Signal++;
262 .LM17:
263 00ce 8091 0000 lds r24,PPM_Signal
264 00d2 9091 0000 lds r25,(PPM_Signal)+1
265 00d6 8417 cp r24,r20
266 00d8 9507 cpc r25,r21
267 00da 00F4 brsh .L11
268 00dc 8091 0000 lds r24,PPM_Signal
269 00e0 9091 0000 lds r25,(PPM_Signal)+1
270 00e4 0196 adiw r24,1
271 00e6 00C0 rjmp .L18
272 .L11:
61:src/PPM_Decode.c **** else if(PPM_Signal > ppm) PPM_Signal--;
274 .LM18:
275 00e8 8091 0000 lds r24,PPM_Signal
276 00ec 9091 0000 lds r25,(PPM_Signal)+1
277 00f0 4817 cp r20,r24
278 00f2 5907 cpc r21,r25
279 00f4 00F4 brsh .L13
280 00f6 8091 0000 lds r24,PPM_Signal
281 00fa 9091 0000 lds r25,(PPM_Signal)+1
282 00fe 0197 sbiw r24,1
283 .L18:
284 0100 9093 0000 sts (PPM_Signal)+1,r25
285 0104 8093 0000 sts PPM_Signal,r24
286 .L13:
62:src/PPM_Decode.c **** if(FILTER_PPM) ppm = (PPM_Signal * FILTER_PPM + ppm) / (FILTER_PPM + 1); // Filtern
288 .LM19:
289 0108 8091 0000 lds r24,PPM_Signal
290 010c 9091 0000 lds r25,(PPM_Signal)+1
291 0110 9C01 movw r18,r24
292 0112 220F lsl r18
293 0114 331F rol r19
294 0116 220F lsl r18
295 0118 331F rol r19
296 011a 220F lsl r18
297 011c 331F rol r19
298 011e 281B sub r18,r24
299 0120 390B sbc r19,r25
300 0122 240F add r18,r20
301 0124 351F adc r19,r21
302 0126 83E0 ldi r24,3
303 0128 3695 1: lsr r19
304 012a 2795 ror r18
305 012c 8A95 dec r24
306 012e 01F4 brne 1b
307 0130 3093 0000 sts (ppm.2080)+1,r19
308 0134 2093 0000 sts ppm.2080,r18
63:src/PPM_Decode.c **** PPM_Signal = ppm;
310 .LM20:
311 0138 3093 0000 sts (PPM_Signal)+1,r19
312 013c 2093 0000 sts PPM_Signal,r18
64:src/PPM_Decode.c **** if(anz_ppm_werte < 255) anz_ppm_werte++;
314 .LM21:
315 0140 8091 0000 lds r24,anz_ppm_werte
316 0144 8F3F cpi r24,lo8(-1)
317 0146 01F0 breq .L15
318 0148 8091 0000 lds r24,anz_ppm_werte
319 014c 8F5F subi r24,lo8(-(1))
320 014e 8093 0000 sts anz_ppm_werte,r24
321 .L15:
65:src/PPM_Decode.c **** ZeitZumAdWandeln = 1;
323 .LM22:
324 0152 81E0 ldi r24,lo8(1)
325 0154 8093 0000 sts ZeitZumAdWandeln,r24
326 .L17:
327 /* epilogue: frame size=0 */
328 0158 9F91 pop r25
329 015a 8F91 pop r24
330 015c 5F91 pop r21
331 015e 4F91 pop r20
332 0160 3F91 pop r19
333 0162 2F91 pop r18
334 0164 0F90 pop __tmp_reg__
335 0166 0FBE out __SREG__,__tmp_reg__
336 0168 0F90 pop __tmp_reg__
337 016a 1F90 pop __zero_reg__
338 016c 1895 reti
339 /* epilogue end (size=11) */
340 /* function __vector_5 size 154 (132) */
346 .Lscope3:
348 .stabd 78,0,0
350 .global __vector_1
352 __vector_1:
353 .stabd 46,0,0
66:src/PPM_Decode.c **** }
67:src/PPM_Decode.c **** }
68:src/PPM_Decode.c ****
69:src/PPM_Decode.c **** //############################################################################
70:src/PPM_Decode.c **** //
71:src/PPM_Decode.c **** SIGNAL(SIG_INTERRUPT0)
72:src/PPM_Decode.c **** //############################################################################
73:src/PPM_Decode.c **** {
355 .LM23:
356 .LFBB4:
357 /* prologue: frame size=0 */
358 016e 1F92 push __zero_reg__
359 0170 0F92 push __tmp_reg__
360 0172 0FB6 in __tmp_reg__,__SREG__
361 0174 0F92 push __tmp_reg__
362 0176 1124 clr __zero_reg__
363 0178 8F93 push r24
364 /* prologue end (size=6) */
74:src/PPM_Decode.c **** CLR_INT0_FLAG; // IntFlag Loeschen
366 .LM24:
367 017a 8AB7 in r24,90-0x20
368 017c 8F7B andi r24,lo8(-65)
369 017e 8ABF out 90-0x20,r24
370 /* epilogue: frame size=0 */
371 0180 8F91 pop r24
372 0182 0F90 pop __tmp_reg__
373 0184 0FBE out __SREG__,__tmp_reg__
374 0186 0F90 pop __tmp_reg__
375 0188 1F90 pop __zero_reg__
376 018a 1895 reti
377 /* epilogue end (size=6) */
378 /* function __vector_1 size 15 (3) */
380 .Lscope4:
382 .stabd 78,0,0
383 .global PPM_Signal
384 .global PPM_Signal
385 .section .bss
388 PPM_Signal:
389 0000 0000 .skip 2,0
390 .global Timer1Overflow
391 .global Timer1Overflow
394 Timer1Overflow:
395 0002 00 .skip 1,0
396 .global PPM_Timeout
397 .global PPM_Timeout
400 PPM_Timeout:
401 0003 00 .skip 1,0
402 .global anz_ppm_werte
403 .global anz_ppm_werte
406 anz_ppm_werte:
407 0004 00 .skip 1,0
408 .lcomm ppm.2080,2
409 .lcomm tim_alt.2079,2
416 .text
418 .Letext0:
419 /* File "src/PPM_Decode.c": code 199 = 0x00c7 ( 152), prologues 23, epilogues 24 */
DEFINED SYMBOLS
*ABS*:00000000 PPM_Decode.c
/tmp/cc2IZgCl.s:2 *ABS*:0000003f __SREG__
/tmp/cc2IZgCl.s:3 *ABS*:0000003e __SP_H__
/tmp/cc2IZgCl.s:4 *ABS*:0000003d __SP_L__
/tmp/cc2IZgCl.s:5 *ABS*:00000000 __tmp_reg__
/tmp/cc2IZgCl.s:6 *ABS*:00000001 __zero_reg__
/tmp/cc2IZgCl.s:102 .text:00000000 InitPPM
/tmp/cc2IZgCl.s:140 .text:0000001a __vector_8
/tmp/cc2IZgCl.s:394 .bss:00000002 Timer1Overflow
/tmp/cc2IZgCl.s:174 .text:0000003c __vector_5
/tmp/cc2IZgCl.s:408 .bss:00000007 tim_alt.2079
/tmp/cc2IZgCl.s:400 .bss:00000003 PPM_Timeout
.bss:00000005 ppm.2080
/tmp/cc2IZgCl.s:388 .bss:00000000 PPM_Signal
/tmp/cc2IZgCl.s:406 .bss:00000004 anz_ppm_werte
/tmp/cc2IZgCl.s:352 .text:0000016e __vector_1
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
ZeitZumAdWandeln