打印

请教状态机检测按键

[复制链接]
1610|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chest20090909|  楼主 | 2018-6-8 11:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
到网上找找状态机的资料,不是你这么理解的

使用特权

评论回复
板凳
wsnsyy| | 2018-6-8 11:23 | 只看该作者
那怎么区分短按和长按

使用特权

评论回复
地板
chest20090909|  楼主 | 2018-6-8 11:46 | 只看该作者
wsnsyy 发表于 2018-6-8 11:23
那怎么区分短按和长按

如果按键什么时候抬起由按键者自己决定,那应该怎么设置按键检测呢
按键按下判断及10ms的消抖检测是有的

使用特权

评论回复
5
ifus| | 2018-6-8 14:57 | 只看该作者
只检测按下后的时间就可以了

使用特权

评论回复
6
chest20090909|  楼主 | 2018-6-9 14:49 | 只看该作者
ifus 发表于 2018-6-8 14:57
只检测按下后的时间就可以了

是不是在防抖检测后只需要检测按键什么时候抬起就可以了,因为按键闭合时间不定

使用特权

评论回复
7
chongdongchen| | 2018-6-9 15:40 | 只看该作者
首先你还要知道三个基本要素:
1、防抖,楼主已经知道了
2、检测变化,就是什么时候按下,什么时候放开
3、计时,按下的时候就开始计时,放开清零

结合变化和时间,就可以判断任意按键触发了,当前按钮状态、单击、双击(三四五六。。。)、长按、连击、释放等等,都不在话下了。

使用特权

评论回复
8
chest20090909|  楼主 | 2018-6-9 22:55 | 只看该作者
chongdongchen 发表于 2018-6-9 15:40
首先你还要知道三个基本要素:
1、防抖,楼主已经知道了
2、检测变化,就是什么时候按下,什么时候放开

如果只是需要按下按键执行一个动作,松开按键执行另一个动作,是不是可以不用计时,只需要判断键值就可以?

使用特权

评论回复
9
chongdongchen| | 2018-6-11 08:23 | 只看该作者
chest20090909 发表于 2018-6-9 22:55
如果只是需要按下按键执行一个动作,松开按键执行另一个动作,是不是可以不用计时,只需要判断键值就可以 ...

是的,做好消抖就可以

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

121

主题

632

帖子

4

粉丝