📄 key_drv.lst
字号:
187 2 return (key);
188 2 case KEY_2:
189 2 gl_key_press = TRUE;
190 2 key = KEY_2;
191 2 kbd_install();
192 2 return (key);
193 2 case KEY_3:
194 2 gl_key_press = TRUE;
195 2 key = KEY_3;
196 2 kbd_install();
197 2 return (key);
198 2 default :
199 2 gl_key_press = FALSE;
200 2 key = NO_KEY;
201 2 kbd_install();
202 2 return(key);
203 2 }
204 1 }
205
206 void Keydelay(Uint32 time)
207 {
208 1 Uint32 i;
209 1 for(i = 0; i < time; i++);
210 1 }
211
212
213 void key_task(void)
214 {
215 1 gl_key = NO_KEY;
216 1 switch(system_mode)
217 1 {
218 2 case MP3_STATUS:
219 2 {
220 3 switch(key_mode)
221 3 {
222 4 case MP3_PLAY_MODE:
223 4 if (kbd_decode() == KEY_0) {
224 5 key_mode = MP3_VOL_MODE;
225 5 song_sound = SND_VOLUME;
226 5 lcdcls(0x90);
227 5 print_sound_level();
228 5 }
229 4 else if (kbd_decode() == KEY_1) gl_key = KEY_PREV;
230 4 else if (kbd_decode() == KEY_2) gl_key = KEY_NEXT;
231 4 else if (kbd_decode() == KEY_3)
232 4 {
233 5 Keydelay(0x0fff);
234 5 play_pause = ~play_pause;
235 5
236 5 if (play_pause) gl_key = KEY_PLAY;
237 5 else gl_key = KEY_PAUSE;
238 5 }
239 4 break;
240 4
C51 COMPILER V7.50 KEY_DRV 06/03/2006 10:32:53 PAGE 5
241 4 case MP3_VOL_MODE:
242 4 if (kbd_decode() == KEY_0) {
243 5 key_mode = MP3_BASS_MODE;
244 5 song_sound = SND_BASS;
245 5 lcdcls(0x90);
246 5 print_sound_level();
247 5 }
248 4 else if (kbd_decode() == KEY_1) gl_key = KEY_DEC;
249 4 else if (kbd_decode() == KEY_2) gl_key = KEY_INC;
250 4 break;
251 4
252 4 case MP3_BASS_MODE:
253 4 if (kbd_decode() == KEY_0) {
254 5 key_mode = MP3_MED_MODE;
255 5 song_sound = SND_MEDIUM;
256 5 lcdcls(0x90);
257 5 print_sound_level();
258 5 }
259 4 else if (kbd_decode() == KEY_1) gl_key = KEY_DEC;
260 4 else if (kbd_decode() == KEY_2) gl_key = KEY_INC;
261 4 else if (kbd_decode() == KEY_3)
262 4 {
263 5 Keydelay(0x0fff);
264 5 bass_nobass = ~bass_nobass;
265 5 if (bass_nobass) {
266 6 MP3CON |= MSK_MPBBST;
267 6 printch(0x97,"B ");
268 6 gl_key = KEY_BASS;
269 6 }
270 5
271 5 else {
272 6 MP3CON &= (~MSK_MPBBST);
273 6 printch(0x97,"N ");
274 6 gl_key = KEY_NOBASS;
275 6 }
276 5 }
277 4 break;
278 4
279 4 case MP3_MED_MODE:
280 4 if (kbd_decode() == KEY_0) {
281 5 key_mode = MP3_TRE_MODE;
282 5 song_sound = SND_TREBLE;
283 5 lcdcls(0x90);
284 5 print_sound_level();
285 5 }
286 4 else if (kbd_decode() == KEY_1) gl_key = KEY_DEC;
287 4 else if (kbd_decode() == KEY_2) gl_key = KEY_INC;
288 4 break;
289 4
290 4 case MP3_TRE_MODE:
291 4 if (kbd_decode() == KEY_0) {
292 5 key_mode = MP3_OTHER_MODE;
293 5 lcdcls(0x90);
294 5 //printch(0x90,"进入USB按KEY3 ");
295 5 }
296 4 else if (kbd_decode() == KEY_1) gl_key = KEY_DEC;
297 4 else if (kbd_decode() == KEY_2) gl_key = KEY_INC;
298 4 break;
299 4
300 4 case MP3_OTHER_MODE:
301 4 if (kbd_decode() == KEY_0) {
302 5 key_mode = MP3_PLAY_MODE;
C51 COMPILER V7.50 KEY_DRV 06/03/2006 10:32:53 PAGE 6
303 5 song_sound = SND_NONDIS;
304 5 lcdcls(0x90);
305 5 print_sound_level();
306 5 }
307 4 else if (kbd_decode() == KEY_1) gl_key = KEY_PARENT;
308 4 else if (kbd_decode() == KEY_2) gl_key = KEY_REPEAT;
309 4 else if (kbd_decode() == KEY_3) {
-
310 5
311 5 }
312 4 //gl_key = KEY_STOP;
313 4 break;
314 4
315 4 default : break;
316 4 }
317 3 }
318 2 break;
319 2
320 2 case REC_STATUS:
321 2 {break;}
322 2
323 2 default : break;
324 2 }
325 1
326 1 keytemp = 0x00;
327 1 }
328
329
330
331
332
333
334
335 /*F**************************************************************************
336 * NAME: kbd_int
337 *----------------------------------------------------------------------------
338 * PARAMS:
339 *
340 * return:
341 *----------------------------------------------------------------------------
342 * PURPOSE:
343 * Keyboard interrupt function
344 *----------------------------------------------------------------------------
345 * EXAMPLE:
346 *----------------------------------------------------------------------------
347 * NOTE:
348 * This isr is called when a key is pressed to get out power-down Interrupt
349 * is re-enable in the install routine
350 *----------------------------------------------------------------------------
351 * REQUIREMENTS:
352 * ram/xram:
353 * cycle:
354 * stack:
355 * code:
356 *****************************************************************************/
357 #if KBD_EXIT_PD
358 Interrupt(kbd_int (void), IRQ_KBD)
359 {
360 1 keytemp = KBSTA;
361 1 Kbd_disable_int(); /* disable interrupt */
362 1 }
363 #endif
C51 COMPILER V7.50 KEY_DRV 06/03/2006 10:32:53 PAGE 7
364
365
366
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 622 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- 8
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = 3 ----
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 + -