📄 time.lst
字号:
40:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** /** \defgroup util_delay_basic <util/delay_basic.h>: Basic busy-wait delay loops
41:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** \code
42:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** #include <util/delay_basic.h>
43:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** \endcode
44:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****
45:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** The functions in this header file implement simple delay loops
46:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** that perform a busy-waiting. They are typically used to
47:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** facilitate short delays in the program execution. They are
48:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** implemented as count-down loops with a well-known CPU cycle
49:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** count per loop iteration. As such, no other processing can
50:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** occur simultaneously. It should be kept in mind that the
51:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** functions described here do not disable interrupts.
52:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****
53:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** In general, for long delays, the use of hardware timers is
54:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** much preferrable, as they free the CPU, and allow for
55:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** concurrent processing of other events while the timer is
56:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** running. However, in particular for very short delays, the
57:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** overhead of setting up a hardware timer is too much compared
58:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** to the overall delay time.
59:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****
60:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** Two inline functions are provided for the actual delay algorithms.
61:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****
62:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** */
63:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****
64:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** #if !defined(__DOXYGEN__)
65:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** static inline void _delay_loop_1(uint8_t __count) __attribute__((always_inline));
66:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** static inline void _delay_loop_2(uint16_t __count) __attribute__((always_inline));
67:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** #endif
68:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****
69:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** /** \ingroup util_delay_basic
70:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****
71:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** Delay loop using an 8-bit counter \c __count, so up to 256
72:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** iterations are possible. (The value 256 would have to be passed
73:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** as 0.) The loop executes three CPU cycles per iteration, not
74:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** including the overhead the compiler needs to setup the counter
75:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** register.
76:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****
77:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** Thus, at a CPU speed of 1 MHz, delays of up to 768 microseconds
78:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** can be achieved.
79:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** */
80:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** void
81:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** _delay_loop_1(uint8_t __count)
82:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** {
83:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** __asm__ volatile (
84:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** "1: dec %0" "\n\t"
85:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** "brne 1b"
86:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** : "=r" (__count)
87:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** : "0" (__count)
88:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** );
89:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** }
90:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****
91:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** /** \ingroup util_delay_basic
92:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****
93:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** Delay loop using a 16-bit counter \c __count, so up to 65536
94:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** iterations are possible. (The value 65536 would have to be
95:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** passed as 0.) The loop executes four CPU cycles per iteration,
96:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** not including the overhead the compiler requires to setup the
97:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** counter register pair.
98:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h ****
99:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** Thus, at a CPU speed of 1 MHz, delays of up to about 262.1
100:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** milliseconds can be achieved.
101:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** */
102:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** void
103:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** _delay_loop_2(uint16_t __count)
104:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** {
105:c:/winavr-20080512/lib/gcc/../../avr/include/util/delay_basic.h **** __asm__ volatile (
190 162,0,0,0
193 0064 9EE2 .global timeInit
195 timeInit:
197 0068 01F4 .LM0:
198 .LFBB1:
199 /* prologue: function */
200 /* frame size = 0 */
202 .LM1:
203 ldi r24,lo8(5)
204 out 83-32,r24
29:time.c **** _delay_ms(3);
30:time.c **** PORTB &= 0x1F;
206 .LFBB1
207 .LM0:
208 006a 88B3 .LFBB1:
209 006c 8F71 /* prologue: function */
210 006e 88BB /* frame size = 0 */
31:time.c **** }
32:time.c **** if(count_m == 125)
212 al timeInit
214 0070 8091 0000 timeInit:
216 0076 01F4 .LM0:
33:time.c **** {
34:time.c **** count_m = 0;
217 0
35:time.c **** second ++;
220 tabs "TWI_slave_data:T(9,4)=s7length:(0,11),0,8;string:(9,2),8,16;flag:(9,2),24,16;next:(9,5)=*(9,4
225 .global timeInit
36:time.c **** }
37:time.c **** }...
227 ,5)=*(9,4),40,16;;",128,0,0,0
232 008c AF91 .global timeInit
234 0090 8F91 timeInit:
236 0094 6F91 .LM0:
237 0096 5F91 .LFBB1:
238 0098 4F91 /* prologue: function */
239 009a 3F91 /* frame size = 0 */
241 009e 0F90 .LM1:
242 00a0 0FBE ldi r24,lo8(5)
243 00a2 0F90 out 83-32,r24
245 00a6 1895 .LM2:
246 ldi r24,lo8(-126)
247 out 82-32,r24
249 .LM3:
250 in r24,89-32
251 ori r24,lo8(1)
252 out 89-32,r24
DEFINED SYMBOLS
*ABS*:00000000 time.c
C:\DOCUME~1\wht\LOCALS~1\Temp/ccOaatjc.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\wht\LOCALS~1\Temp/ccOaatjc.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\wht\LOCALS~1\Temp/ccOaatjc.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\wht\LOCALS~1\Temp/ccOaatjc.s:5 *ABS*:00000034 __CCP__
C:\DOCUME~1\wht\LOCALS~1\Temp/ccOaatjc.s:6 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\wht\LOCALS~1\Temp/ccOaatjc.s:7 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\wht\LOCALS~1\Temp/ccOaatjc.s:83 .text:00000000 timeInit
C:\DOCUME~1\wht\LOCALS~1\Temp/ccOaatjc.s:118 .text:00000012 getTime
C:\DOCUME~1\wht\LOCALS~1\Temp/ccOaatjc.s:248 .bss:00000001 second
C:\DOCUME~1\wht\LOCALS~1\Temp/ccOaatjc.s:136 .text:00000018 __vector_9
.bss:00000000 count_m
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
get_sensor
status
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -