请问“将状态机检测按键放在主函数里的用法”正确吗?

2019-10-15 03:32发布

今天看到一种用状态机检测按键的做法,感觉很新颖,框图如下:
aa.jpg 但是跟在底下的实例程序里,把这个函数放在了while(1)里,虽然while(1)里还有别的程序,但中间也没有人任何延时,所以感觉这样的状态机并没有起到去除抖动的作用。不知道这样的做法是否正确还是我理解错了。求各位指教。

(我感觉如果把这样的函数放在定时器中断里面,大概10ms执行一次,再加一个状态确认按键稳定按下,才能起到去除抖动的作用。)

我把书也上传上来吧,这本书讲C51,感觉挺不错的,也分享下。关于按键消抖的部分在按键的230多页。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
xiaochu312
2019-10-15 20:35
本帖最后由 xiaochu312 于 2017-2-10 12:12 编辑

我也是新手,扫描函数放在主函数,和扫描程序放在定时器中断,个人感觉都一样的,1、放在主函数,比如定时器设置好定时10MS,定时器中断设置个标志位,主函数判断标志位,扫描按键,这样也是起到10MS扫描一次的效果;2、扫描程序放在定时器中断,中断一次扫描一个,也是10MS扫描一个按键;3、其实定时的10MS间隔就起到了消抖的作用,比如按键按下,10MS后扫描还检测到按键还按下,判断有键按下

一周热门 更多>