Blame | Last modification | View Log | RSS feed
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