- #define is_button_pressed() (SW==0)
 
 - #define is_button_pressed() (SW==1)
 
 - #define COMFIRM_TIME_SET 100
 
 - #define DELAY_SET 10000
 
  
- volatile uint8_t key_counter=0;
 
 - volatile uint8_t filter_acc=0;
 
 - volatile uint16_t delay_acc=0;
 
 - void key(uint8_t *state)
 
 - {
 
 -         switch((*state))
 
 -         {
 
 -         case 0:
 
 -                 //防抖
 
 -                 if(is_button_pressed()) filter_acc++;
 
 -                 else filter_acc=0;
 
 -                 //按钮按下
 
 -                 if(filter_acc>COMFIRM_TIME_SET)
 
 -                 {
 
 -                         (*state)=1;
 
 -                         key_counter++;
 
 -                         filter_acc=0;
 
 -                 }
 
 -                 break;
 
 -         case 1:
 
 -                 //防抖
 
 -                 if(is_button_released()) filter_acc++;
 
 -                 else filter_acc=0;
 
 -                 //按钮释放
 
 -                 if(filter_acc>COMFIRM_TIME_SET) 
 
 -                 {
 
 -                         (*state)=0;
 
 -                         key_counter++;
 
 -                         filter_acc=0;
 
 -                 }
 
 -                 break;
 
 -         }
 
 - }
 
  
 
- void play(uint8_t *state)
 
 - {
 
 -         switch((*state))
 
 -         {
 
 -         case 0:
 
 -                 P10=0;P11=1;
 
 -                 break;
 
 -         case 1:
 
 -                 P10=1;P11=1;
 
 -                 break;
 
 -         case 2:
 
 -                 P10=0;P11=1;
 
 -                 if(++delay_acc>DELAY_SET)
 
 -                 {
 
 -                         delay_acc=0;
 
 -                         (*state)=3;
 
 -                 }
 
 -                 break;
 
 -         case 3:
 
 -                 P10=1;P11=0;
 
 -                 if(++delay_acc>DELAY_SET)
 
 -                 {
 
 -                         delay_acc=0;
 
 -                         (*state)=2;
 
 -                 }
 
 -                 break;
 
 -         }
 
 - }
 
  你这个play函数卡循环,导致卡循环,给你个程序模板,你看看吧。 
  |