谁能给我一郭天祥按键消抖的C程序

2020-01-13 18:36发布

谁能给我一郭天祥按键消抖的C程序,会用汇编写,但不会用C
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
45条回答
yiyu
2020-01-16 05:46
#define TICK_MS 10
#define DEBOUNCE_DELAY     (20/TICK_MS)
#define DOUBLE_DELAY          ( 200/TICK_MS)
#define DOUBLE_INTERVAL     (333/TICK_MS)

char get_key(void)
{
   static char delay = 0;
   char chr;
   chr = keydown();          /*  获取键值 ,无按键为0 */
  if(  chr  )  
  {
       ++delay;
    if( delay == DEBOUNCE_DELAY )    /*  经过去抖动延时 */
         return(chr);
    else if( delay == DOUBLE_DELAY + DOUBLE_INTERVAL )   /*   键持续按下一段时间 */
    {
         delay = DOUBLE_DELAY;
         return(chr);
    }
  }
  else
     delay = 0;
  return 0;
}
未经测试,仅供参考

一周热门 更多>