📄 kbd_task.lst
字号:
C51 COMPILER V7.02a KBD_TASK 09/13/2007 11:53:04 PAGE 1
C51 COMPILER V7.02a, COMPILATION OF MODULE KBD_TASK
OBJECT MODULE PLACED IN kbd_task.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE modules\kbd\kbd_task.c OPTIMIZE(7,SPEED) BROWSE INCDIR(.\modules\system;.\;
-.\;.\lib_refd) DEFINE(KEIL) DEBUG OBJECTEXTEND PRINT(.\kbd_task.lst) OBJECT(kbd_task.obj)
stmt level source
1 /*C**************************************************************************
2 * NAME: kbd_task.c
3 *----------------------------------------------------------------------------
4 * Copyright (c) 2003 Atmel.
5 *----------------------------------------------------------------------------
6 * RELEASE: snd1c-refd-nf-4_0_3
7 * REVISION: 1.3.2.16
8 *----------------------------------------------------------------------------
9 * PURPOSE:
10 * This file contains the keyboard task and attached routines
11 *
12 * NOTES:
13 * Global Variables:
14 * - gl_key_press: bit in bdata space
15 * - gl_key: byte in idata space
16 * - gl_kbd_tick: byte in data space
17 *****************************************************************************/
18
19 /*_____ I N C L U D E S ____________________________________________________*/
20
21 #include "config.h" /* system configuration */
22 #include "board.h" /* board definition */
23 #include "lib_mcu\kbd\kbd_drv.h" /* Keyboard driver definition */
24 #include "kbd_task.h" /* Keyboard task definition */
25
26 #include "modules\file\file.h" /* file definition */
27 #include "modules\mem\mem_task.h" /* memory task definition */
28 #include "modules\display\led.h" /* led definition */
29 #include "modules\mode\mode_task.h" /* mode task definition */
30
31 #define REF_STATE_SONG 0
32 #define REF_STATE_VOICE 1
33 #define REF_STATE_USB 2
34 #define REF_STATE_FORMAT 3
35
36 void k_delay( );
37 void late_date( );
38 void change( );
39 extern bdata bit intr_fre ;
40 extern unsigned char file_next ,fun_key ,mp3,tool_state ;
41 extern unsigned char xdata change_data;
42 void intr_data_task( );
43 /*_____ M A C R O S ________________________________________________________*/
44
45
46 /*_____ D E F I N I T I O N ________________________________________________*/
47
48 extern bdata bit gl_key_press; /* set to TRUE if a key is decoded */
49 extern idata Byte gl_key; /* value of the key pressed */
50 extern data Byte gl_kbd_tick; /* keypad tick counter */
51
52 extern idata Uint16 gl_act_tick; /* Activity tick */
53 extern Byte song_state; /* task state */
54 extern data Byte mode_state; /* task state */
C51 COMPILER V7.02a KBD_TASK 09/13/2007 11:53:04 PAGE 2
55
56 extern xdata Byte LED_ON;
57 extern xdata Byte LED_FAST;
58
59 xdata Byte func_state;
60 xdata Byte func_timeout; /* Time out special function */
61 xdata Byte ref_state = REF_STATE_SONG;
62 bit playing = FALSE;
63 bit pause = FALSE;
64 bit recording = FALSE;
65 bit connected = FALSE;
66 bit bargraph = FALSE;
67
68 static Byte kbd_state; /* keyboard task state */
69
70
71 /*_____ D E C L A R A T I O N ______________________________________________*/
72
73 void usb_task_init (void);
74
75
76 /*F**************************************************************************
77 * NAME: kbd_task_init
78 *----------------------------------------------------------------------------
79 * PARAMS:
80 *
81 * return:
82 *----------------------------------------------------------------------------
83 * PURPOSE:
84 * Keyboard task initialisation
85 *----------------------------------------------------------------------------
86 * EXAMPLE:
87 *----------------------------------------------------------------------------
88 * NOTE:
89 *----------------------------------------------------------------------------
90 * REQUIREMENTS:
91 *****************************************************************************/
92 void kbd_task_init (void)
93 {
94 1 kbd_state = KBD_IDLE;
95 1 gl_key_press = FALSE; /* no key pressed */
96 1 gl_key = NO_KEY;
97 1 kbd_init(); /* keyboard initialization */
98 1 }
99
100
101 /*F**************************************************************************
102 * NAME: ref_mode_task
103 *----------------------------------------------------------------------------
104 * PARAMS:
105 *
106 * return:
107 *----------------------------------------------------------------------------
108 * PURPOSE:
109 * Mode task
110 *----------------------------------------------------------------------------
111 * EXAMPLE:
112 *----------------------------------------------------------------------------
113 * NOTE:
114 * STATES:
115 * MODE_BOOT boot state
116 * MODE_DOWNLOAD file download mode
C51 COMPILER V7.02a KBD_TASK 09/13/2007 11:53:04 PAGE 3
117 * MODE_SONG song playing mode
118 * MODE_VOICE voice playing & recording mode
119 * MODE_TOOL tool mode
120 * MODE_IDLE idle mode (switch back to first task)
121 *----------------------------------------------------------------------------
122 * REQUIREMENTS:
123 *****************************************************************************/
124 void ref_mode_task (void)
125 {
126 1 gl_key_press = FALSE;
127 1 func_timeout = 0;
128 1 gl_act_tick = 0;
129 1
130 1
131 1 if(file_next) /////
-//////////////////////////////////
132 1 {
133 2
134 2 gl_key =KEY_PLUS;
135 2 file_next--;
136 2
137 2 }
138 1
139 1
140 1 if (connected)
141 1 {
142 2 if (gl_key != KEY_FUNC) return;
143 2 connected = FALSE;
144 2 mode_state = MODE_SONG;
145 2 ENA_USB = !connected;
146 2 goto Label_init_ihm;
147 2 }
148 1 else if (gl_key == KEY_PLUS)
149 1 {
150 2 gl_key_press = TRUE;
151 2 if (func_state) { gl_key = KEY_INC; bargraph=TRUE; }
152 2 else gl_key = KEY_NEXT;
153 2 }
154 1 else if (gl_key == KEY_MINUS)
155 1 {
156 2 gl_key_press = TRUE;
157 2 if (func_state) { gl_key = KEY_DEC; bargraph=TRUE; }
158 2 else gl_key = KEY_PREV;
159 2 }
160 1 else if (recording)
161 1 {
162 2 if (gl_key == KEY_FUNC)
163 2 {
164 3 gl_key_press = TRUE;
165 3 if (playing) gl_key = KEY_PAUSE;
166 3 else gl_key = KEY_REC;
167 3 SHUT_MIC = playing;
168 3 }
169 2
170 2
171 2 }
172 1 else if (playing)
173 1 {
174 2 bargraph=FALSE;
175 2 if (gl_key == KEY_FUNC)
176 2 {
177 3 gl_key_press = TRUE;
C51 COMPILER V7.02a KBD_TASK 09/13/2007 11:53:04 PAGE 4
178 3 if ((func_state == 2) && (ref_state == REF_STATE_VOICE)) gl_key = KEY_STOP;
179 3 else gl_key = KEY_PAUSE;
180 3 }
181 2 else if (gl_key == KEY_VALID)
182 2 {
183 3 if (ref_state == REF_STATE_VOICE)
184 3 {
185 4 if (func_state == 1) { func_state=2; LED_ON = 4; }
186 4 else { func_state=1; LED_ON = 8; }
187 4 LED_FAST = 2;
188 4 }
189 3 else
190 3 {
191 4 if (func_state)
192 4 {
193 5 gl_key_press = TRUE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -