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

📄 kbd_task.lst

📁 串口小程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 194   5                gl_key = KEY_SOUND;
 195   5              }
 196   4              if (func_state>=5) func_state = 0;
 197   4              func_state++;
 198   4              LED_FAST = 2;
 199   4              if (func_state == 5)
 200   4              {
 201   5                LED_ON=7;
 202   5                if (MP3CON & MSK_MPBBST) LED_FAST = 1;
 203   5              }
 204   4              else LED_ON = (16>>func_state);
 205   4            }
 206   3          }
 207   2        }
 208   1        else
 209   1        {
 210   2          if (gl_key == KEY_FUNC)
 211   2          {
 212   3            func_state=0;
 213   3            if (ref_state == REF_STATE_SONG)
 214   3            {
 215   4              gl_key_press = TRUE;
 216   4              gl_key = KEY_PLAY;
 217   4              mode_state = MODE_SONG;
 218   4            }
 219   3            else if (ref_state == REF_STATE_VOICE)
 220   3            {
 221   4              gl_key_press = TRUE;
 222   4              if (func_state == 2) gl_key = KEY_REC;
 223   4              else               gl_key = KEY_PLAY;
 224   4              mode_state = MODE_VOICE;
 225   4            }
 226   3            else if (ref_state == REF_STATE_USB)    // && !connected
 227   3            {
 228   4                
 229   4                  
 230   4              usb_task_init ();
 231   4              connected = TRUE;
 232   4              mode_state = MODE_DOWNLOAD;
 233   4              ENA_USB = !connected;
 234   4            }
 235   3                 
 236   3            else if (ref_state == REF_STATE_FORMAT)
 237   3            {
 238   4             
 239   4              LED_TREEB = 1;
C51 COMPILER V7.02a   KBD_TASK                                                             09/13/2007 11:53:04 PAGE 5   

 240   4              Fformat();
 241   4              if (mem_select_format() != OK) LED_FAST=1; /* check file system */
 242   4              else LED_FAST = 3;
 243   4                 
 244   4              
 245   4            } 
 246   3          }
 247   2          else if (gl_key == KEY_VALID)
 248   2          {
 249   3            if (pause)
 250   3            {
 251   4              pause = FALSE;
 252   4              gl_key_press = TRUE;
 253   4              gl_key = KEY_STOP;
 254   4            }
 255   3            if (ref_state >= 3)
 256   3            {
 257   4            Label_init_ihm:
 258   4              ref_state = 0;
 259   4              mode_task_init();
 260   4            }
 261   3            else ref_state++;
 262   3            LED_ON = (8 >> ref_state);
 263   3            LED_FAST = 3;
 264   3          }
 265   2        }
 266   1      
 267   1      }
 268          
 269          
 270          /*F**************************************************************************
 271          * NAME: kbd_task
 272          *----------------------------------------------------------------------------
 273          * PARAMS:
 274          *
 275          * return:
 276          *----------------------------------------------------------------------------
 277          * PURPOSE: 
 278          *   Keyboard task
 279          *----------------------------------------------------------------------------
 280          * EXAMPLE:
 281          *----------------------------------------------------------------------------
 282          * NOTE:
 283          *----------------------------------------------------------------------------
 284          * REQUIREMENTS:
 285          *****************************************************************************/
 286          void kbd_task (void)
 287          { 
 288   1       
 289   1         change( );
 290   1        
 291   1         if((mp3==3)&(connected==0))
 292   1        {
 293   2          P3_1=0;
 294   2          k_delay(  );
 295   2          P3_1=1;
 296   2      
 297   2        }
 298   1         
 299   1        
 300   1        switch (kbd_state)
 301   1        {
C51 COMPILER V7.02a   KBD_TASK                                                             09/13/2007 11:53:04 PAGE 6   

 302   2          case KBD_IDLE:
 303   2            if (Kbd_key_pressed()|| (fun_key>0) )
 304   2            {
 305   3              gl_kbd_tick = KBD_DEBOUNCE_INIT;  /* init debounce timer */
 306   3              kbd_state =KBD_DEBOUNCE;
 307   3            }
 308   2            break;
 309   2      
 310   2          case KBD_DEBOUNCE:
 311   2            if (gl_kbd_tick > KBD_DEBOUNCE_TEMPO)
 312   2            {
 313   3              kbd_state = KBD_DECODE;
 314   3            }
 315   2            break;
 316   2      
 317   2          case KBD_DECODE:
 318   2            gl_key = kbd_decode();              /* read key pressed */
 319   2                if(fun_key>0)
 320   2      
 321   2               {
 322   3                 gl_key=0x02;
 323   3                 fun_key=0;
 324   3                 }
 325   2            if (gl_key != NO_KEY)               /* if real key pressed */
 326   2             { gl_key_press = TRUE; 
 327   3               fun_key=0;
 328   3                 /* signal to other tasks */
 329   3                 }
 330   2            kbd_state = KBD_IDLE;
 331   2            break;
 332   2      
 333   2          default:
 334   2            break;
 335   2        }
 336   1        
 337   1        // Add driver keyboard for Reference Design:
 338   1        // Re-map physical keys over logical demoboard keys
 339   1        if (gl_key_press == TRUE && gl_key < NO_KEY)      ref_mode_task();
 340   1      
 341   1      
 342   1        if (connected && (mode_state == MODE_SONG))
 343   1        { /* download exit */
 344   2          gl_key_press = TRUE;
 345   2          gl_key = KEY_FUNC;
 346   2        }
 347   1      }
 348          
 349          
 350          /*F**************************************************************************
 351          * NAME: kbd_set_stop
 352          *----------------------------------------------------------------------------
 353          * PARAMS:
 354          *
 355          * return:
 356          *----------------------------------------------------------------------------
 357          * PURPOSE: 
 358          *   Simulate STOP key press
 359          *----------------------------------------------------------------------------
 360          * EXAMPLE:
 361          *----------------------------------------------------------------------------
 362          * NOTE:
 363          *   Called from mode task before switching to download state
C51 COMPILER V7.02a   KBD_TASK                                                             09/13/2007 11:53:04 PAGE 7   

 364          *----------------------------------------------------------------------------
 365          * REQUIREMENTS:
 366          *****************************************************************************/
 367          void kbd_set_stop (void)
 368          {
 369   1        gl_key = KEY_STOP;
 370   1        gl_key_press = TRUE;
 371   1        kbd_state = KBD_IDLE;
 372   1      }
 373          
 374          
 375          void k_delay(  )
 376           {
 377   1      
 378   1        unsigned char i;
 379   1        for(i=0;i<200;i++);
 380   1      
 381   1      
 382   1       }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    647    ----
   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 + -