📄 kbd_task.lst
字号:
184 2 if (gl_key == KEY_FUNC)
185 2 {
186 3 gl_key_press = TRUE;
187 3 if (playing) gl_key = KEY_PAUSE;
188 3 else gl_key = KEY_REC;
189 3 SHUT_MIC = playing;
190 3 }
191 2 else if (gl_key == KEY_VALID)
192 2 {
193 3 if (pause || playing)
194 3 {
195 4 gl_key_press = TRUE;
196 4 gl_key = KEY_STOP;
197 4 }
198 3 else recording=FALSE;
199 3 }
200 2 }
201 1 else if (playing)
202 1 {
203 2 bargraph=FALSE;
204 2 if (gl_key == KEY_FUNC)
205 2 {
206 3 gl_key_press = TRUE;
207 3 if ((func_state == 2) && (ref_state == REF_STATE_VOICE)) gl_key = KEY_STOP;
208 3 else gl_key = KEY_PAUSE;
209 3 }
210 2 else if (gl_key == KEY_VALID)
211 2 {
212 3 if (ref_state == REF_STATE_VOICE)
213 3 {
214 4 if (func_state == 1) { func_state=2; }
215 4 else { func_state=1; }
216 4 }
217 3 else
218 3 {
219 4 if (func_state)
220 4 {
221 5 gl_key_press = TRUE;
222 5 gl_key = KEY_SOUND;
223 5 }
224 4 if (func_state>=5) func_state = 0;
225 4 func_state++;
226 4 }
227 3 }
228 2 }
229 1 else
230 1 {
231 2 if (gl_key == KEY_FUNC)
232 2 {
233 3 func_state=0;
234 3 if (ref_state == REF_STATE_SONG)
235 3 {
236 4 gl_key_press = TRUE;
237 4 gl_key = KEY_PLAY;
238 4 mode_state = MODE_SONG;
239 4 }
240 3 else if (ref_state == REF_STATE_VOICE)
C51 COMPILER V7.06 KBD_TASK 05/05/2005 12:12:04 PAGE 5
241 3 {
242 4 gl_key_press = TRUE;
243 4 if (func_state == 2) gl_key = KEY_REC;
244 4 else gl_key = KEY_PLAY;
245 4 mode_state = MODE_VOICE;
246 4 }
247 3 else if (ref_state == REF_STATE_USB) // && !connected
248 3 {
249 4 usb_task_init ();
250 4 connected = TRUE;
251 4 mode_state = MODE_DOWNLOAD;
252 4 ENA_USB = !connected;
253 4 }
254 3 }
255 2 else if (gl_key == KEY_VALID)
256 2 {
257 3 if (pause)
258 3 {
259 4 pause = FALSE;
260 4 gl_key_press = TRUE;
261 4 gl_key = KEY_STOP;
262 4 }
263 3 if (((ref_state >= 1)&(independence))|(ref_state >= 2))
264 3 {
265 4 Label_init_ihm:
266 4 ref_state = 0;
267 4 mode_task_init();
268 4 }
269 3 else ref_state++;
270 3 }
271 2 }
272 1 }
273
274
275 /*F**************************************************************************
276 * NAME: kbd_task
277 *----------------------------------------------------------------------------
278 * PARAMS:
279 *
280 * return:
281 *----------------------------------------------------------------------------
282 * PURPOSE:
283 * Keyboard task
284 *----------------------------------------------------------------------------
285 * EXAMPLE:
286 *----------------------------------------------------------------------------
287 * NOTE:
288 *----------------------------------------------------------------------------
289 * REQUIREMENTS:
290 *****************************************************************************/
291 void kbd_task (void)
292 {
293 1 switch (kbd_state)
294 1 {
295 2 case KBD_IDLE:
296 2 if (P_KBD==0xf7) power_tick++;
297 2 if (Kbd_key_pressed())
298 2 {
299 3 gl_kbd_tick = KBD_DEBOUNCE_INIT; /* init debounce timer */
300 3 kbd_state = KBD_DEBOUNCE;
301 3 }
302 2 if (power_tick > 200) SHUT_PWR=0;
C51 COMPILER V7.06 KBD_TASK 05/05/2005 12:12:04 PAGE 6
303 2 else power_tick=0;
304 2 break;
305 2
306 2 case KBD_DEBOUNCE:
307 2 if (gl_kbd_tick > KBD_DEBOUNCE_TEMPO)
308 2 {
309 3 kbd_state = KBD_DECODE;
310 3 }
311 2 break;
312 2
313 2 case KBD_DECODE:
314 2 if (MIUP==0) P_KBD=0xBF;
315 2 gl_key = kbd_decode(); /* read key pressed */
316 2 if (gl_key != NO_KEY) /* if real key pressed */
317 2 gl_key_press = TRUE; /* signal to other tasks */
318 2 kbd_state = KBD_IDLE;
319 2 break;
320 2
321 2 default:
322 2 break;
323 2 }
324 1
325 1 // Add driver keyboard for Reference Design:
326 1 // Re-map physical keys over logical demoboard keys
327 1 if (gl_key_press == TRUE && gl_key < NO_KEY) ref_mode_task();
328 1 if (connected && (mode_state == MODE_SONG))
329 1 { /* download exit */
330 2 gl_key_press = TRUE;
331 2 gl_key = KEY_FUNC;
332 2 }
333 1 }
334
335
336 /*F**************************************************************************
337 * NAME: kbd_set_stop
338 *----------------------------------------------------------------------------
339 * PARAMS:
340 *
341 * return:
342 *----------------------------------------------------------------------------
343 * PURPOSE:
344 * Simulate STOP key press
345 *----------------------------------------------------------------------------
346 * EXAMPLE:
347 *----------------------------------------------------------------------------
348 * NOTE:
349 * Called from mode task before switching to download state
350 *----------------------------------------------------------------------------
351 * REQUIREMENTS:
352 *****************************************************************************/
353 void kbd_set_stop (void)
354 {
355 1 gl_key = KEY_STOP;
356 1 gl_key_press = TRUE;
357 1 kbd_state = KBD_IDLE;
358 1 }
359
360
361
MODULE INFORMATION: STATIC OVERLAYABLE
C51 COMPILER V7.06 KBD_TASK 05/05/2005 12:12:04 PAGE 7
CODE SIZE = 572 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 3 ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
IDATA SIZE = ---- ----
BIT SIZE = 6 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -