📄 kbd_task.lst
字号:
C51 COMPILER V6.20c KBD_TASK 07/10/2002 15:17:39 PAGE 1
C51 COMPILER V6.20c, COMPILATION OF MODULE KBD_TASK
OBJECT MODULE PLACED IN ..\obj\kbd_task.obj
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE ..\src\kbd\kbd_task.c BROWSE INCDIR(..\src\system;..\..\..\lib) DEFINE(KEIL
-) DEBUG OBJECTEXTEND PRINT(.\kbd_task.lst) OBJECT(..\obj\kbd_task.obj)
stmt level source
1 /*C**************************************************************************
2 * $RCSfile: kbd_task.c,v $
3 *----------------------------------------------------------------------------
4 * Copyright (c) 2002 Atmel.
5 *----------------------------------------------------------------------------
6 * RELEASE: $Name: DEMO_FAT_1_2_5 $
7 * REVISION: $Revision: 1.2 $
8 * FILE_CVSID: $Id: kbd_task.c,v 1.2 2002/06/07 15:44:39 ffosse Exp $
9 *----------------------------------------------------------------------------
10 * PURPOSE:
11 * This file contains the keyboard task and attached routines
12 *
13 * NOTES:
14 * Global Variables:
15 * - gl_key_press: bit in bdata space
16 * - gl_key: byte in idata space
17 * - gl_kbd_tick: byte in data space
18 *****************************************************************************/
19
20 /*_____ I N C L U D E S ____________________________________________________*/
21
22 #include "config.h" /* system configuration */
23 #include "..\..\..\..\lib_demob\board.h" /* board definition */
24 #include "..\..\..\..\lib\kbd\kbd_drv.h" /* Keyboard driver definition */
25 #include "kbd_task.h" /* Keyboard task definition */
26
27
28 /*_____ M A C R O S ________________________________________________________*/
29
30
31 /*_____ D E F I N I T I O N ________________________________________________*/
32
33 extern bdata bit gl_key_press; /* set to TRUE if a key is decoded */
34 extern idata Byte gl_key; /* value of the key pressed */
35 extern data Byte gl_kbd_tick; /* keypad tick counter */
36
37 static Byte kbd_state; /* keyboard task state */
38
39
40 /*_____ D E C L A R A T I O N ______________________________________________*/
41
42
43 /*F**************************************************************************
44 * NAME: kbd_task_init
45 *----------------------------------------------------------------------------
46 * PARAMS:
47 *
48 * return:
49 *----------------------------------------------------------------------------
50 * PURPOSE:
51 * Keyboard task initialisation
52 *----------------------------------------------------------------------------
53 * EXAMPLE:
54 *----------------------------------------------------------------------------
C51 COMPILER V6.20c KBD_TASK 07/10/2002 15:17:39 PAGE 2
55 * NOTE:
56 *----------------------------------------------------------------------------
57 * REQUIREMENTS:
58 *****************************************************************************/
59 void kbd_task_init (void)
60 {
61 1 kbd_state = KBD_IDLE;
62 1 gl_key_press = FALSE; /* no key pressed */
63 1 gl_key = NO_KEY;
64 1 kbd_init(); /* keyboard initialization */
65 1 }
66
67
68 /*F**************************************************************************
69 * NAME: kbd_task
70 *----------------------------------------------------------------------------
71 * PARAMS:
72 *
73 * return:
74 *----------------------------------------------------------------------------
75 * PURPOSE:
76 * Keyboard task
77 *----------------------------------------------------------------------------
78 * EXAMPLE:
79 *----------------------------------------------------------------------------
80 * NOTE:
81 *----------------------------------------------------------------------------
82 * REQUIREMENTS:
83 *****************************************************************************/
84 void kbd_task (void)
85 {
86 1 switch (kbd_state)
87 1 {
88 2 case KBD_IDLE:
89 2 if (Kbd_key_pressed())
90 2 {
91 3 gl_kbd_tick = KBD_DEBOUNCE_INIT; /* init debounce timer */
92 3 kbd_state = KBD_DEBOUNCE;
93 3 }
94 2 break;
95 2
96 2 case KBD_DEBOUNCE:
97 2 if (gl_kbd_tick > KBD_DEBOUNCE_TEMPO)
98 2 {
99 3 kbd_state = KBD_DECODE;
100 3 }
101 2 break;
102 2
103 2 case KBD_DECODE:
104 2 gl_key = kbd_decode(); /* read key pressed */
105 2 if (gl_key != NO_KEY) /* if real key pressed */
106 2 gl_key_press = TRUE; /* signal to other tasks */
107 2 kbd_state = KBD_IDLE;
108 2 break;
109 2
110 2 default:
111 2 break;
112 2 }
113 1 }
114
115 /*F**************************************************************************
116 * NAME: kbd_set_stop
C51 COMPILER V6.20c KBD_TASK 07/10/2002 15:17:39 PAGE 3
117 *----------------------------------------------------------------------------
118 * PARAMS:
119 *
120 * return:
121 *----------------------------------------------------------------------------
122 * PURPOSE:
123 * Simulate STOP key press
124 *----------------------------------------------------------------------------
125 * EXAMPLE:
126 *----------------------------------------------------------------------------
127 * NOTE:
128 * Called from mode task before switching to download state
129 *----------------------------------------------------------------------------
130 * REQUIREMENTS:
131 *****************************************************************************/
132 void kbd_set_stop (void)
133 {
134 1 gl_key = KEY_STOP;
135 1 gl_key_press = TRUE;
136 1 kbd_state = KBD_IDLE;
137 1 }
138
139
140
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 80 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -