?? main_key.lst
字號:
84:C:/WinAVR/avr/include/util/delay.h **** static inline void _delay_loop_1(uint8_t __count) __attribute__((always_inline));
85:C:/WinAVR/avr/include/util/delay.h **** static inline void _delay_loop_2(uint16_t __count) __attribute__((always_inline));
86:C:/WinAVR/avr/include/util/delay.h **** static inline void _delay_us(double __us) __attribute__((always_inline));
87:C:/WinAVR/avr/include/util/delay.h **** static inline void _delay_ms(double __ms) __attribute__((always_inline));
88:C:/WinAVR/avr/include/util/delay.h **** #endif
89:C:/WinAVR/avr/include/util/delay.h ****
90:C:/WinAVR/avr/include/util/delay.h **** /** \ingroup util_delay
91:C:/WinAVR/avr/include/util/delay.h ****
92:C:/WinAVR/avr/include/util/delay.h **** Delay loop using an 8-bit counter \c __count, so up to 256
93:C:/WinAVR/avr/include/util/delay.h **** iterations are possible. (The value 256 would have to be passed
94:C:/WinAVR/avr/include/util/delay.h **** as 0.) The loop executes three CPU cycles per iteration, not
95:C:/WinAVR/avr/include/util/delay.h **** including the overhead the compiler needs to setup the counter
96:C:/WinAVR/avr/include/util/delay.h **** register.
97:C:/WinAVR/avr/include/util/delay.h ****
98:C:/WinAVR/avr/include/util/delay.h **** Thus, at a CPU speed of 1 MHz, delays of up to 768 microseconds
99:C:/WinAVR/avr/include/util/delay.h **** can be achieved.
100:C:/WinAVR/avr/include/util/delay.h **** */
101:C:/WinAVR/avr/include/util/delay.h **** void
102:C:/WinAVR/avr/include/util/delay.h **** _delay_loop_1(uint8_t __count)
103:C:/WinAVR/avr/include/util/delay.h **** {
104:C:/WinAVR/avr/include/util/delay.h **** __asm__ volatile (
105:C:/WinAVR/avr/include/util/delay.h **** "1: dec %0" "\n\t"
106:C:/WinAVR/avr/include/util/delay.h **** "brne 1b"
107:C:/WinAVR/avr/include/util/delay.h **** : "=r" (__count)
108:C:/WinAVR/avr/include/util/delay.h **** : "0" (__count)
109:C:/WinAVR/avr/include/util/delay.h **** );
110:C:/WinAVR/avr/include/util/delay.h **** }
111:C:/WinAVR/avr/include/util/delay.h ****
112:C:/WinAVR/avr/include/util/delay.h **** /** \ingroup util_delay
113:C:/WinAVR/avr/include/util/delay.h ****
114:C:/WinAVR/avr/include/util/delay.h **** Delay loop using a 16-bit counter \c __count, so up to 65536
115:C:/WinAVR/avr/include/util/delay.h **** iterations are possible. (The value 65536 would have to be
116:C:/WinAVR/avr/include/util/delay.h **** passed as 0.) The loop executes four CPU cycles per iteration,
117:C:/WinAVR/avr/include/util/delay.h **** not including the overhead the compiler requires to setup the
118:C:/WinAVR/avr/include/util/delay.h **** counter register pair.
119:C:/WinAVR/avr/include/util/delay.h ****
120:C:/WinAVR/avr/include/util/delay.h **** Thus, at a CPU speed of 1 MHz, delays of up to about 262.1
121:C:/WinAVR/avr/include/util/delay.h **** milliseconds can be achieved.
122:C:/WinAVR/avr/include/util/delay.h **** */
123:C:/WinAVR/avr/include/util/delay.h **** void
124:C:/WinAVR/avr/include/util/delay.h **** _delay_loop_2(uint16_t __count)
125:C:/WinAVR/avr/include/util/delay.h **** {
126:C:/WinAVR/avr/include/util/delay.h **** __asm__ volatile (
127:C:/WinAVR/avr/include/util/delay.h **** "1: sbiw %0,1" "\n\t"
128:C:/WinAVR/avr/include/util/delay.h **** "brne 1b"
129:C:/WinAVR/avr/include/util/delay.h **** : "=w" (__count)
130:C:/WinAVR/avr/include/util/delay.h **** : "0" (__count)
131:C:/WinAVR/avr/include/util/delay.h **** );
132:C:/WinAVR/avr/include/util/delay.h **** }
133:C:/WinAVR/avr/include/util/delay.h ****
134:C:/WinAVR/avr/include/util/delay.h **** #ifndef F_CPU
135:C:/WinAVR/avr/include/util/delay.h **** /* prevent compiler error by supplying a default */
136:C:/WinAVR/avr/include/util/delay.h **** # warning "F_CPU not defined for <util/delay.h>"
137:C:/WinAVR/avr/include/util/delay.h **** # define F_CPU 1000000UL
138:C:/WinAVR/avr/include/util/delay.h **** #endif
139:C:/WinAVR/avr/include/util/delay.h ****
140:C:/WinAVR/avr/include/util/delay.h **** /**
141:C:/WinAVR/avr/include/util/delay.h **** \ingroup util_delay
142:C:/WinAVR/avr/include/util/delay.h ****
143:C:/WinAVR/avr/include/util/delay.h **** Perform a delay of \c __us microseconds, using _delay_loop_1().
144:C:/WinAVR/avr/include/util/delay.h ****
145:C:/WinAVR/avr/include/util/delay.h **** The macro F_CPU is supposed to be defined to a
146:C:/WinAVR/avr/include/util/delay.h **** constant defining the CPU clock frequency (in Hertz).
147:C:/WinAVR/avr/include/util/delay.h ****
148:C:/WinAVR/avr/include/util/delay.h **** The maximal possible delay is 768 us / F_CPU in MHz.
149:C:/WinAVR/avr/include/util/delay.h **** */
150:C:/WinAVR/avr/include/util/delay.h **** void
151:C:/WinAVR/avr/include/util/delay.h **** _delay_us(double __us)
152:C:/WinAVR/avr/include/util/delay.h **** {
153:C:/WinAVR/avr/include/util/delay.h **** uint8_t __ticks;
154:C:/WinAVR/avr/include/util/delay.h **** double __tmp = ((F_CPU) / 3e6) * __us;
155:C:/WinAVR/avr/include/util/delay.h **** if (__tmp < 1.0)
156:C:/WinAVR/avr/include/util/delay.h **** __ticks = 1;
157:C:/WinAVR/avr/include/util/delay.h **** else if (__tmp > 255)
158:C:/WinAVR/avr/include/util/delay.h **** __ticks = 0; /* i.e. 256 */
159:C:/WinAVR/avr/include/util/delay.h **** else
160:C:/WinAVR/avr/include/util/delay.h **** __ticks = (uint8_t)__tmp;
161:C:/WinAVR/avr/include/util/delay.h **** _delay_loop_1(__ticks);
162:C:/WinAVR/avr/include/util/delay.h **** }
163:C:/WinAVR/avr/include/util/delay.h ****
164:C:/WinAVR/avr/include/util/delay.h ****
165:C:/WinAVR/avr/include/util/delay.h **** /**
166:C:/WinAVR/avr/include/util/delay.h **** \ingroup util_delay
167:C:/WinAVR/avr/include/util/delay.h ****
168:C:/WinAVR/avr/include/util/delay.h **** Perform a delay of \c __ms milliseconds, using _delay_loop_2().
169:C:/WinAVR/avr/include/util/delay.h ****
170:C:/WinAVR/avr/include/util/delay.h **** The macro F_CPU is supposed to be defined to a
171:C:/WinAVR/avr/include/util/delay.h **** constant defining the CPU clock frequency (in Hertz).
172:C:/WinAVR/avr/include/util/delay.h ****
173:C:/WinAVR/avr/include/util/delay.h **** The maximal possible delay is 262.14 ms / F_CPU in MHz.
174:C:/WinAVR/avr/include/util/delay.h **** */
175:C:/WinAVR/avr/include/util/delay.h **** void
176:C:/WinAVR/avr/include/util/delay.h **** _delay_ms(double __ms)
177:C:/WinAVR/avr/include/util/delay.h **** {
207 .LM15:
208 00a4 80E0 ldi r24,lo8(0x42480000)
209 00a6 90E0 ldi r25,hi8(0x42480000)
210 00a8 A8E4 ldi r26,hlo8(0x42480000)
211 00aa B2E4 ldi r27,hhi8(0x42480000)
212 00ac 8A83 std Y+2,r24
213 00ae 9B83 std Y+3,r25
214 00b0 AC83 std Y+4,r26
215 00b2 BD83 std Y+5,r27
216 .LBB4:
178:C:/WinAVR/avr/include/util/delay.h **** uint16_t __ticks;
179:C:/WinAVR/avr/include/util/delay.h **** double __tmp = ((F_CPU) / 4e3) * __ms;
218 .LM16:
219 00b4 26E6 ldi r18,lo8(0x44e66666)
220 00b6 36E6 ldi r19,hi8(0x44e66666)
221 00b8 46EE ldi r20,hlo8(0x44e66666)
222 00ba 54E4 ldi r21,hhi8(0x44e66666)
223 00bc 6A81 ldd r22,Y+2
224 00be 7B81 ldd r23,Y+3
225 00c0 8C81 ldd r24,Y+4
226 00c2 9D81 ldd r25,Y+5
227 00c4 0E94 0000 call __mulsf3
228 00c8 DC01 movw r26,r24
229 00ca CB01 movw r24,r22
230 00cc 8887 std Y+8,r24
231 00ce 9987 std Y+9,r25
232 00d0 AA87 std Y+10,r26
233 00d2 BB87 std Y+11,r27
180:C:/WinAVR/avr/include/util/delay.h **** if (__tmp < 1.0)
235 .LM17:
236 00d4 20E0 ldi r18,lo8(0x3f800000)
237 00d6 30E0 ldi r19,hi8(0x3f800000)
238 00d8 40E8 ldi r20,hlo8(0x3f800000)
239 00da 5FE3 ldi r21,hhi8(0x3f800000)
240 00dc 6885 ldd r22,Y+8
241 00de 7985 ldd r23,Y+9
242 00e0 8A85 ldd r24,Y+10
243 00e2 9B85 ldd r25,Y+11
244 00e4 0E94 0000 call __ltsf2
245 00e8 8823 tst r24
246 00ea 0CF0 brlt .L7
247 00ec 05C0 rjmp .L6
248 .L7:
181:C:/WinAVR/avr/include/util/delay.h **** __ticks = 1;
250 .LM18:
251 00ee 81E0 ldi r24,lo8(1)
252 00f0 90E0 ldi r25,hi8(1)
253 00f2 9F83 std Y+7,r25
254 00f4 8E83 std Y+6,r24
255 00f6 1AC0 rjmp .L8
256 .L6:
182:C:/WinAVR/avr/include/util/delay.h **** else if (__tmp > 65535)
258 .LM19:
259 00f8 20E0 ldi r18,lo8(0x477fff00)
260 00fa 3FEF ldi r19,hi8(0x477fff00)
261 00fc 4FE7 ldi r20,hlo8(0x477fff00)
262 00fe 57E4 ldi r21,hhi8(0x477fff00)
263 0100 6885 ldd r22,Y+8
264 0102 7985 ldd r23,Y+9
265 0104 8A85 ldd r24,Y+10
266 0106 9B85 ldd r25,Y+11
267 0108 0E94 0000 call __gtsf2
268 010c 1816 cp __zero_reg__,r24
269 010e 0CF0 brlt .L10
270 0110 03C0 rjmp .L9
271 .L10:
183:C:/WinAVR/avr/include/util/delay.h **** __ticks = 0; /* i.e. 65536 */
273 .LM20:
274 0112 1F82 std Y+7,__zero_reg__
275 0114 1E82 std Y+6,__zero_reg__
276 0116 0AC0 rjmp .L8
277 .L9:
184:C:/WinAVR/avr/include/util/delay.h **** else
185:C:/WinAVR/avr/include/util/delay.h **** __ticks = (uint16_t)__tmp;
279 .LM21:
280 0118 6885 ldd r22,Y+8
281 011a 7985 ldd r23,Y+9
282 011c 8A85 ldd r24,Y+10
283 011e 9B85 ldd r25,Y+11
284 0120 0E94 0000 call __fixunssfsi
285 0124 DC01 movw r26,r24
286 0126 CB01 movw r24,r22
287 0128 9F83 std Y+7,r25
288 012a 8E83 std Y+6,r24
289 .L8:
290 .LBB5:
292 .LM22:
293 012c 8E81 ldd r24,Y+6
294 012e 9F81 ldd r25,Y+7
295 0130 9D87 std Y+13,r25
296 0132 8C87 std Y+12,r24
297 .LBB6:
299 .LM23:
300 0134 8C85 ldd r24,Y+12
301 0136 9D85 ldd r25,Y+13
302 /* #APP */
303 0138 0197 1: sbiw r24,1
304 013a F1F7 brne 1b
305 /* #NOAPP */
306 013c 9D87 std Y+13,r25
307 013e 8C87 std Y+12,r24
308 .LBE6:
309 .LBE5:
310 .LBE4:
311 .LBE3:
313 .Ltext2:
48:main_key.c **** _delay_ms(50);
49:main_key.c **** if(temp_key1==key())
315 .LM24:
316 0140 0E94 0000 call key
317 0144 982F mov r25,r24
318 0146 8981 ldd r24,Y+1
319 0148 9817 cp r25,r24
320 014a 09F0 breq .+2
321 014c A8CF rjmp .L4
50:main_key.c **** {
51:main_key.c **** //LCM1602Write_String(0,0,temp_key1);
52:main_key.c **** LCM1602Write_number(temp_key1);
323 .LM25:
324 014e 8981 ldd r24,Y+1
325 0150 0E94 0000 call LCM1602Write_number
326 .LBE2:
327 0154 A4CF rjmp .L4
328 /* epilogue: frame size=13 */
329 /* epilogue: noreturn */
330 /* epilogue end (size=0) */
331 /* function main size 106 (102) */
346 .Lscope2:
347 .text
349 Letext:
350 /* File "main_key.c": code 174 = 0x00ae ( 123), prologues 29, epilogues 22 */
DEFINED SYMBOLS
*ABS*:00000000 main_key.c
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccyebaaa.s:3 *ABS*:0000003f __SREG__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccyebaaa.s:4 *ABS*:0000003e __SP_H__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccyebaaa.s:5 *ABS*:0000003d __SP_L__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccyebaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccyebaaa.s:7 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccyebaaa.s:76 .text:00000000 Timer0_init
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccyebaaa.s:114 .text:0000002e __vector_9
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccyebaaa.s:174 .text:00000088 main
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccyebaaa.s:349 .text:00000156 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
key
__stack
key_init
LCM1602Init
__mulsf3
__ltsf2
__gtsf2
__fixunssfsi
LCM1602Write_number
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -