0,0 → 1,288 |
1 .file "timer0.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: |
101 .global __vector_9 |
103 __vector_9: |
104 .stabd 46,0,0 |
1:src/timer0.c **** /***************************************************************************** |
2:src/timer0.c **** |
3:src/timer0.c **** *****************************************************************************/ |
4:src/timer0.c **** #include "main.h" |
5:src/timer0.c **** volatile unsigned int CountMilliseconds = 0; |
6:src/timer0.c **** volatile unsigned char Timer0Overflow; |
7:src/timer0.c **** |
8:src/timer0.c **** enum { |
9:src/timer0.c **** STOP = 0, |
10:src/timer0.c **** CK = 1, |
11:src/timer0.c **** CK8 = 2, |
12:src/timer0.c **** CK64 = 3, |
13:src/timer0.c **** CK256 = 4, |
14:src/timer0.c **** CK1024 = 5, |
15:src/timer0.c **** T0_FALLING_EDGE = 6, |
16:src/timer0.c **** T0_RISING_EDGE = 7 |
17:src/timer0.c **** }; |
18:src/timer0.c **** |
19:src/timer0.c **** |
20:src/timer0.c **** SIGNAL(SIG_OVERFLOW0) |
21:src/timer0.c **** { |
106 .LM0: |
107 .LFBB1: |
108 /* prologue: frame size=0 */ |
109 0000 1F92 push __zero_reg__ |
110 0002 0F92 push __tmp_reg__ |
111 0004 0FB6 in __tmp_reg__,__SREG__ |
112 0006 0F92 push __tmp_reg__ |
113 0008 1124 clr __zero_reg__ |
114 000a 8F93 push r24 |
115 000c 9F93 push r25 |
116 /* prologue end (size=7) */ |
22:src/timer0.c **** static unsigned char cnt; |
23:src/timer0.c **** Timer0Overflow++; |
118 .LM1: |
119 000e 8091 0000 lds r24,Timer0Overflow |
120 0012 8F5F subi r24,lo8(-(1)) |
121 0014 8093 0000 sts Timer0Overflow,r24 |
24:src/timer0.c **** if(!cnt--) |
123 .LM2: |
124 0018 8091 0000 lds r24,cnt.2066 |
125 001c 8150 subi r24,lo8(-(-1)) |
126 001e 8093 0000 sts cnt.2066,r24 |
127 0022 8F3F cpi r24,lo8(-1) |
128 0024 01F4 brne .L10 |
25:src/timer0.c **** { |
26:src/timer0.c **** cnt = 3; |
130 .LM3: |
131 0026 83E0 ldi r24,lo8(3) |
132 0028 8093 0000 sts cnt.2066,r24 |
27:src/timer0.c **** CountMilliseconds += 1; |
134 .LM4: |
135 002c 8091 0000 lds r24,CountMilliseconds |
136 0030 9091 0000 lds r25,(CountMilliseconds)+1 |
137 0034 0196 adiw r24,1 |
138 0036 9093 0000 sts (CountMilliseconds)+1,r25 |
139 003a 8093 0000 sts CountMilliseconds,r24 |
28:src/timer0.c **** if(I2C_Timeout) I2C_Timeout--; |
141 .LM5: |
142 003e 8091 0000 lds r24,I2C_Timeout |
143 0042 9091 0000 lds r25,(I2C_Timeout)+1 |
144 0046 0097 sbiw r24,0 |
145 0048 01F0 breq .L4 |
146 004a 0197 sbiw r24,1 |
147 004c 9093 0000 sts (I2C_Timeout)+1,r25 |
148 0050 8093 0000 sts I2C_Timeout,r24 |
149 .L4: |
29:src/timer0.c **** if(PPM_Timeout) PPM_Timeout--; else anz_ppm_werte = 0; |
151 .LM6: |
152 0054 8091 0000 lds r24,PPM_Timeout |
153 0058 8823 tst r24 |
154 005a 01F0 breq .L6 |
155 005c 8091 0000 lds r24,PPM_Timeout |
156 0060 8150 subi r24,lo8(-(-1)) |
157 0062 8093 0000 sts PPM_Timeout,r24 |
158 0066 00C0 rjmp .L8 |
159 .L6: |
160 0068 1092 0000 sts anz_ppm_werte,__zero_reg__ |
161 .L8: |
30:src/timer0.c **** if(SIO_Timeout) SIO_Timeout--; |
163 .LM7: |
164 006c 8091 0000 lds r24,SIO_Timeout |
165 0070 9091 0000 lds r25,(SIO_Timeout)+1 |
166 0074 0097 sbiw r24,0 |
167 0076 01F0 breq .L10 |
168 0078 0197 sbiw r24,1 |
169 007a 9093 0000 sts (SIO_Timeout)+1,r25 |
170 007e 8093 0000 sts SIO_Timeout,r24 |
171 .L10: |
172 /* epilogue: frame size=0 */ |
173 0082 9F91 pop r25 |
174 0084 8F91 pop r24 |
175 0086 0F90 pop __tmp_reg__ |
176 0088 0FBE out __SREG__,__tmp_reg__ |
177 008a 0F90 pop __tmp_reg__ |
178 008c 1F90 pop __zero_reg__ |
179 008e 1895 reti |
180 /* epilogue end (size=7) */ |
181 /* function __vector_9 size 72 (58) */ |
186 .Lscope1: |
188 .stabd 78,0,0 |
190 .global Timer0_Init |
192 Timer0_Init: |
193 .stabd 46,0,0 |
31:src/timer0.c **** } |
32:src/timer0.c **** } |
33:src/timer0.c **** |
34:src/timer0.c **** |
35:src/timer0.c **** void Timer0_Init(void) |
36:src/timer0.c **** { |
195 .LM8: |
196 .LFBB2: |
197 /* prologue: frame size=0 */ |
198 /* prologue end (size=0) */ |
37:src/timer0.c **** TCCR0 = TIMER_TEILER; |
200 .LM9: |
201 0090 82E0 ldi r24,lo8(2) |
202 0092 83BF out 83-0x20,r24 |
38:src/timer0.c **** // TCNT0 = -TIMER_RELOAD_VALUE; // reload |
39:src/timer0.c **** TIM0_START; |
204 .LM10: |
205 0094 89B7 in r24,89-0x20 |
206 0096 8160 ori r24,lo8(1) |
207 0098 89BF out 89-0x20,r24 |
40:src/timer0.c **** TIMER2_INT_ENABLE; |
209 .LM11: |
210 009a 89B7 in r24,89-0x20 |
211 009c 8064 ori r24,lo8(64) |
212 009e 89BF out 89-0x20,r24 |
213 /* epilogue: frame size=0 */ |
214 00a0 0895 ret |
215 /* epilogue end (size=1) */ |
216 /* function Timer0_Init size 9 (8) */ |
218 .Lscope2: |
220 .stabd 78,0,0 |
223 .global SetDelay |
225 SetDelay: |
226 .stabd 46,0,0 |
41:src/timer0.c **** } |
42:src/timer0.c **** |
43:src/timer0.c **** |
44:src/timer0.c **** unsigned int SetDelay(unsigned int t) |
45:src/timer0.c **** { |
228 .LM12: |
229 .LFBB3: |
230 /* prologue: frame size=0 */ |
231 /* prologue end (size=0) */ |
46:src/timer0.c **** return(CountMilliseconds + t - 1); |
233 .LM13: |
234 00a2 2091 0000 lds r18,CountMilliseconds |
235 00a6 3091 0000 lds r19,(CountMilliseconds)+1 |
236 00aa 2150 subi r18,lo8(-(-1)) |
237 00ac 3040 sbci r19,hi8(-(-1)) |
47:src/timer0.c **** } |
239 .LM14: |
240 00ae 820F add r24,r18 |
241 00b0 931F adc r25,r19 |
242 /* epilogue: frame size=0 */ |
243 00b2 0895 ret |
244 /* epilogue end (size=1) */ |
245 /* function SetDelay size 9 (8) */ |
247 .Lscope3: |
249 .stabd 78,0,0 |
252 .global CheckDelay |
254 CheckDelay: |
255 .stabd 46,0,0 |
48:src/timer0.c **** |
49:src/timer0.c **** char CheckDelay (unsigned int t) |
50:src/timer0.c **** { |
257 .LM15: |
258 .LFBB4: |
259 /* prologue: frame size=0 */ |
260 /* prologue end (size=0) */ |
51:src/timer0.c **** return(((t - CountMilliseconds) & 0x8000) >> 8); |
262 .LM16: |
263 00b4 2091 0000 lds r18,CountMilliseconds |
264 00b8 3091 0000 lds r19,(CountMilliseconds)+1 |
265 00bc 821B sub r24,r18 |
266 00be 930B sbc r25,r19 |
267 00c0 892F mov r24,r25 |
268 00c2 9927 clr r25 |
269 00c4 8078 andi r24,lo8(-128) |
52:src/timer0.c **** } |
271 .LM17: |
272 00c6 9927 clr r25 |
273 /* epilogue: frame size=0 */ |
274 00c8 0895 ret |
275 /* epilogue end (size=1) */ |
276 /* function CheckDelay size 11 (10) */ |
278 .Lscope4: |
280 .stabd 78,0,0 |
283 .global Delay_ms |
285 Delay_ms: |
286 .stabd 46,0,0 |
53:src/timer0.c **** |
54:src/timer0.c **** void Delay_ms(unsigned int w) |
55:src/timer0.c **** { |
288 .LM18: |
289 .LFBB5: |
290 /* prologue: frame size=0 */ |
291 /* prologue end (size=0) */ |
292 00ca AC01 movw r20,r24 |
293 .LBB6: |
294 .LBB7: |
296 .LM19: |
297 00cc 2091 0000 lds r18,CountMilliseconds |
298 00d0 3091 0000 lds r19,(CountMilliseconds)+1 |
299 .LBE7: |
300 .LBE6: |
56:src/timer0.c **** unsigned int akt; |
57:src/timer0.c **** akt = SetDelay(w); |
58:src/timer0.c **** while (!CheckDelay(akt)); |
302 .LM20: |
303 00d4 2150 subi r18,lo8(-(-1)) |
304 00d6 3040 sbci r19,hi8(-(-1)) |
305 .L18: |
306 .LBB8: |
307 .LBB9: |
309 .LM21: |
310 00d8 8091 0000 lds r24,CountMilliseconds |
311 00dc 9091 0000 lds r25,(CountMilliseconds)+1 |
312 .LBE9: |
313 .LBE8: |
315 .LM22: |
316 00e0 B901 movw r22,r18 |
317 00e2 681B sub r22,r24 |
318 00e4 790B sbc r23,r25 |
319 00e6 CB01 movw r24,r22 |
320 00e8 840F add r24,r20 |
321 00ea 951F adc r25,r21 |
322 00ec 8070 andi r24,lo8(-32768) |
323 00ee 9078 andi r25,hi8(-32768) |
324 00f0 892F mov r24,r25 |
325 00f2 9927 clr r25 |
326 00f4 8823 tst r24 |
327 00f6 01F0 breq .L18 |
328 /* epilogue: frame size=0 */ |
329 00f8 0895 ret |
330 /* epilogue end (size=1) */ |
331 /* function Delay_ms size 24 (23) */ |
333 .Lscope5: |
335 .stabd 78,0,0 |
336 .global CountMilliseconds |
337 .global CountMilliseconds |
338 .section .bss |
341 CountMilliseconds: |
342 0000 0000 .skip 2,0 |
343 .lcomm cnt.2066,1 |
344 .comm Timer0Overflow,1,1 |
348 .text |
350 .Letext0: |
351 /* File "src/timer0.c": code 125 = 0x007d ( 107), prologues 7, epilogues 11 */ |
DEFINED SYMBOLS |
*ABS*:00000000 timer0.c |
/tmp/ccieS1Um.s:2 *ABS*:0000003f __SREG__ |
/tmp/ccieS1Um.s:3 *ABS*:0000003e __SP_H__ |
/tmp/ccieS1Um.s:4 *ABS*:0000003d __SP_L__ |
/tmp/ccieS1Um.s:5 *ABS*:00000000 __tmp_reg__ |
/tmp/ccieS1Um.s:6 *ABS*:00000001 __zero_reg__ |
/tmp/ccieS1Um.s:103 .text:00000000 __vector_9 |
*COM*:00000001 Timer0Overflow |
.bss:00000002 cnt.2066 |
/tmp/ccieS1Um.s:341 .bss:00000000 CountMilliseconds |
/tmp/ccieS1Um.s:192 .text:00000090 Timer0_Init |
/tmp/ccieS1Um.s:225 .text:000000a2 SetDelay |
/tmp/ccieS1Um.s:254 .text:000000b4 CheckDelay |
/tmp/ccieS1Um.s:285 .text:000000ca Delay_ms |
|
UNDEFINED SYMBOLS |
__do_copy_data |
__do_clear_bss |
I2C_Timeout |
PPM_Timeout |
anz_ppm_werte |
SIO_Timeout |