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

2020-01-13 18:36发布

谁能给我一郭天祥按键消抖的C程序,会用汇编写,但不会用C
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
44条回答
yiyu
1楼-- · 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;
}
未经测试,仅供参考
susuyu
2楼-- · 2020-01-16 09:35
mark
mysignal
3楼-- · 2020-01-16 09:50
 精彩回答 2  元偷偷看……
bluelool
4楼-- · 2020-01-16 13:52
mark
wwwdege
5楼-- · 2020-01-16 14:09
mark
moyanqd
6楼-- · 2020-01-16 16:52
让cpu空等不是好的算法!应该杜绝delay这样的用法,放到定时器中断中出来比较好

一周热门 更多>