📄 keyscan.lst
字号:
18:KeyScan.c **** else if(!(PINC & 0x40))
155 16,16;pid:(6,6),32,16;priority:(0,11),48,8;;",128,0,0,0
19:KeyScan.c **** {
20:KeyScan.c **** return (i<<2)+3;
159 (6,29)=s7r_stack:(6,4),0,16;start:(6,30)=*(6,31)=f(0,15),16,16;pid:(6,6),32,16;priority:(0,11),48,8
163 0036 9D5F .global Key_DOWN
165 Key_DOWN:
21:KeyScan.c **** }
22:KeyScan.c **** else if(!(PINC & 0x80))
166 16,16;pid:(6,6),32,16;priority:(0,11),48,8;;",128,0,0,0
23:KeyScan.c **** {
24:KeyScan.c **** return (i<<2)+4;
170 (6,29)=s7r_stack:(6,4),0,16;start:(6,30)=*(6,31)=f(0,15),16,16;pid:(6,6),32,16;priority:(0,11),48,8
174 0042 9C5F .global Key_DOWN
176 0044 892F Key_DOWN:
178 0048 0895 .LM0:
179 /* prologue: frame size=0 */
25:KeyScan.c **** }
26:KeyScan.c **** PORTC=(PORTC<<1) | 1;
180 ,0,0,0
183 004c 880F .global Key_DOWN
185 0050 85BB Key_DOWN:
187 0054 3F4F .LM0:
188 /* prologue: frame size=0 */
189 /* prologue end (size=0) */
191 0058 3105 .LM1:
192 005a 01F4 ldi r24,lo8(15)
193 005c 80E0 out 52-0x20,r24
27:KeyScan.c **** }
28:KeyScan.c **** return 0;
29:KeyScan.c **** }
195 ,0,3,.LM0-Key_DOWN
196 .LM0:
197 0060 0895 /* prologue: frame size=0 */
198 /* prologue end (size=0) */
200 .LM1:
201 ldi r24,lo8(15)
202 out 52-0x20,r24
204 .LM2:
205 ldi r24,lo8(-2)
206 out 53-0x20,r24
207 ldi r18,lo8(0)
208 ldi r19,hi8(0)
209 ldi r20,lo8(18)
210 .L2:
212 .LM3:
213 mov r25,r18
30:KeyScan.c ****
31:KeyScan.c **** unsigned char Key(void)
32:KeyScan.c **** {
215 .LM2:
216 ldi r24,lo8(-2)
217 0062 1F93 out 53-0x20,r24
218 ldi r18,lo8(0)
33:KeyScan.c **** unsigned char t=0;
34:KeyScan.c **** if(Key_DOWN()>0) //检测到按键
219 logue end (size=0) */
221 0064 0E94 0000 .LM1:
222 0068 8823 ldi r24,lo8(15)
223 006a 01F0 out 52-0x20,r24
35:KeyScan.c **** {
36:KeyScan.c **** t=Key_DOWN();
224 @function
225 Key_DOWN:
227 0070 182F .LM0:
228 /* prologue: frame size=0 */
229 /* prologue end (size=0) */
231 .LM1:
232 ldi r24,lo8(15)
233 out 52-0x20,r24
84:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** "1: dec %0" "\n\t"
85:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** "brne 1b"
86:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** : "=r" (__count)
87:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** : "0" (__count)
88:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** );
89:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** }
90:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****
91:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** /** \ingroup util_delay_basic
92:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****
93:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** Delay loop using a 16-bit counter \c __count, so up to 65536
94:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** iterations are possible. (The value 65536 would have to be
95:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** passed as 0.) The loop executes four CPU cycles per iteration,
96:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** not including the overhead the compiler requires to setup the
97:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** counter register pair.
98:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****
99:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** Thus, at a CPU speed of 1 MHz, delays of up to about 262.1
100:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** milliseconds can be achieved.
101:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** */
102:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** void
103:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** _delay_loop_2(uint16_t __count)
104:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** {
105:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** __asm__ volatile (
234 @function
235 Key_DOWN:
237 0074 9CE6 .LM0:
238 /* prologue: frame size=0 */
239 0076 0197 /* prologue end (size=0) */
241 .LM1:
242 ldi r24,lo8(15)
243 out 52-0x20,r24
245 .LM2:
246 ldi r24,lo8(-2)
247 out 53-0x20,r24
37:KeyScan.c **** _delay_ms(10);
38:KeyScan.c **** if(t==Key_DOWN()) //确定有键按下
248 size=0 */
249 /* prologue end (size=0) */
251 007e 1817 .LM1:
252 0080 01F4 ldi r24,lo8(15)
253 out 52-0x20,r24
39:KeyScan.c **** {
40:KeyScan.c **** while(t==Key_DOWN()); //等待释放按键
254 @function
255 Key_DOWN:
257 0086 1817 .LM0:
258 0088 01F0 /* prologue: frame size=0 */
41:KeyScan.c **** return t;
259 ,0,0,0
262 008c 9927 .global Key_DOWN
264 Key_DOWN:
266 0092 90E0 .LM0:
267 /* prologue: frame size=0 */
268 /* prologue end (size=0) */
270 0096 0895 .LM1:
271 ldi r24,lo8(15)
272 out 52-0x20,r24
274 .LM2:
275 ldi r24,lo8(-2)
276 out 53-0x20,r24
277 ldi r18,lo8(0)
278 ldi r19,hi8(0)
279 ldi r20,lo8(18)
280 .L2:
282 .LM3:
283 mov r25,r18
DEFINED SYMBOLS
*ABS*:00000000 KeyScan.c
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc1ukdY3.s:3 *ABS*:0000003f __SREG__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc1ukdY3.s:4 *ABS*:0000003e __SP_H__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc1ukdY3.s:5 *ABS*:0000003d __SP_L__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc1ukdY3.s:6 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc1ukdY3.s:7 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc1ukdY3.s:94 .text:00000000 Key_DOWN
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc1ukdY3.s:213 .text:00000062 Key
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -