⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kbd_task.lst

📁 一个可作为mp3播放器固件的代码集,包括解码,播放,控制,任务管理等.
💻 LST
📖 第 1 页 / 共 2 页
字号:
 173   2          else if (gl_key == KEY_VALID)
 174   2          {
 175   3            if (ref_state == REF_STATE_VOICE)
 176   3            {
 177   4              if (func_state == 1) { func_state=2; LED_ON = 4; }
 178   4              else                 { func_state=1; LED_ON = 8; }
C51 COMPILER V7.50   KBD_TASK                                                              09/20/2005 21:47:42 PAGE 4   

 179   4              LED_FAST = 2;
 180   4            }
 181   3            else
 182   3            {
 183   4              if (func_state)
 184   4              {
 185   5                gl_key_press = TRUE;
 186   5                gl_key = KEY_SOUND;
 187   5              }
 188   4              if (func_state>=5) func_state = 0;
 189   4              func_state++;
 190   4              LED_FAST = 2;
 191   4              if (func_state == 5)
 192   4              {
 193   5                LED_ON=7;
 194   5                if (MP3CON & MSK_MPBBST) LED_FAST = 1;
 195   5              }
 196   4              else LED_ON = (16>>func_state);
 197   4            }
 198   3          }
 199   2        }
 200   1        else
 201   1        {
 202   2          if      (gl_key == KEY_FUNC)
 203   2          {
 204   3            func_state=0;
 205   3            if (ref_state == REF_STATE_SONG)
 206   3            {
 207   4              gl_key_press = TRUE;
 208   4              gl_key = KEY_PLAY;
 209   4              mode_state = MODE_SONG;
 210   4            }
 211   3            else if (ref_state == REF_STATE_VOICE)
 212   3            {
 213   4              gl_key_press = TRUE;
 214   4              if (func_state == 2) gl_key = KEY_REC;
 215   4              else               gl_key = KEY_PLAY;
 216   4              mode_state = MODE_VOICE;
 217   4            }
 218   3            else if (ref_state == REF_STATE_USB)    // && !connected
 219   3            {
 220   4              usb_task_init ();
 221   4              connected = TRUE;
 222   4              mode_state = MODE_DOWNLOAD;
 223   4              ENA_USB = !connected;
 224   4            }
 225   3            else if (ref_state == REF_STATE_FORMAT)
 226   3            {
 227   4              LED_TREEB = 1;
 228   4              Fformat();
 229   4              if (mem_select_format() != OK) LED_FAST=1; /* check file system */
 230   4              else LED_FAST = 3;
 231   4            }
 232   3          }
 233   2          else if (gl_key == KEY_VALID)
 234   2          {
 235   3            if (pause)
 236   3            {
 237   4              pause = FALSE;
 238   4              gl_key_press = TRUE;
 239   4              gl_key = KEY_STOP;
 240   4            }
C51 COMPILER V7.50   KBD_TASK                                                              09/20/2005 21:47:42 PAGE 5   

 241   3            if (ref_state >= 3)
 242   3            {
 243   4            Label_init_ihm:
 244   4              ref_state = 0;
 245   4              mode_task_init();
 246   4            }
 247   3            else ref_state++;
 248   3            LED_ON = (8 >> ref_state);
 249   3            LED_FAST = 3;
 250   3          }
 251   2        }
 252   1      }
 253          
 254          
 255          /*F**************************************************************************
 256          * NAME: kbd_task
 257          *----------------------------------------------------------------------------
 258          * PARAMS:
 259          *
 260          * return:
 261          *----------------------------------------------------------------------------
 262          * PURPOSE: 
 263          *   Keyboard task
 264          *----------------------------------------------------------------------------
 265          * EXAMPLE:
 266          *----------------------------------------------------------------------------
 267          * NOTE:
 268          *----------------------------------------------------------------------------
 269          * REQUIREMENTS:
 270          *****************************************************************************/
 271          void kbd_task (void)
 272          {
 273   1        switch (kbd_state)
 274   1        {
 275   2          case KBD_IDLE:
 276   2            if (Kbd_key_pressed())
 277   2            {
 278   3              gl_kbd_tick = KBD_DEBOUNCE_INIT;  /* init debounce timer */
 279   3              kbd_state = KBD_DEBOUNCE;
 280   3            }
 281   2            break;
 282   2      
 283   2          case KBD_DEBOUNCE:
 284   2            if (gl_kbd_tick > KBD_DEBOUNCE_TEMPO)
 285   2            {
 286   3              kbd_state = KBD_DECODE;
 287   3            }
 288   2            break;
 289   2      
 290   2          case KBD_DECODE:
 291   2            gl_key = kbd_decode();              /* read key pressed */
 292   2            if (gl_key != NO_KEY)               /* if real key pressed */
 293   2              gl_key_press = TRUE;              /* signal to other tasks */
 294   2            kbd_state = KBD_IDLE;
 295   2            break;
 296   2      
 297   2          default:
 298   2            break;
 299   2        }
 300   1      
 301   1        // Add driver keyboard for Reference Design:
 302   1        // Re-map physical keys over logical demoboard keys
C51 COMPILER V7.50   KBD_TASK                                                              09/20/2005 21:47:42 PAGE 6   

 303   1        if (gl_key_press == TRUE && gl_key < NO_KEY) ref_mode_task();
 304   1        if (connected && (mode_state == MODE_SONG))
 305   1        { /* download exit */
 306   2          gl_key_press = TRUE;
 307   2          gl_key = KEY_FUNC;
 308   2        }
 309   1      }
 310          
 311          
 312          /*F**************************************************************************
 313          * NAME: kbd_set_stop
 314          *----------------------------------------------------------------------------
 315          * PARAMS:
 316          *
 317          * return:
 318          *----------------------------------------------------------------------------
 319          * PURPOSE: 
 320          *   Simulate STOP key press
 321          *----------------------------------------------------------------------------
 322          * EXAMPLE:
 323          *----------------------------------------------------------------------------
 324          * NOTE:
 325          *   Called from mode task before switching to download state
 326          *----------------------------------------------------------------------------
 327          * REQUIREMENTS:
 328          *****************************************************************************/
 329          void kbd_set_stop (void)
 330          {
 331   1        gl_key = KEY_STOP;
 332   1        gl_key_press = TRUE;
 333   1        kbd_state = KBD_IDLE;
 334   1      }
 335          
 336          
 337          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    619    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =      3    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      5    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -