请问一下这个函数是怎么做到按键消抖的

2019-03-24 17:31发布


以下是扫描消抖函数:
void keyscan()
{
        if(s2==0)  //S2是一个独立按键
        {
                while(s2==0);  //想问的是为什么如果此处的S2一直按着不松手,应该是NUM一直在加,但实际上为什么只是松开时
                num++;        //才加一次呢?如果在按的过程中有抖动,那么也应该会不规则连加几次啊,他这是怎么做到去抖的呢?
        }
}


望请各位大师解惑!!
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
16816
2019-03-26 02:28
飞翔荷兰人号 发表于 2016-7-27 22:22
如果把num++放在while的括号里才是你说的会一直加,while语句后面一个分号,所以跟num++没关系,只有执行完 ...

谢谢,我想这才是真正说到了点了,之前我都理解错了,向大师学习

一周热门 更多>