请教状态机检测按键

[复制链接]
 楼主| chest20090909 发表于 2018-6-8 11:09 | 显示全部楼层 |阅读模式
请教大家,用状态机检测按键,如果按键按下后松开的时间不定(由按键者自己决定什么时候松开按键),那状态机检测按键程序里是不是只检测按键按下及按键防抖,不用检测按键按下时间呢
蒙面男@蒙面女王 发表于 2018-6-8 11:11 | 显示全部楼层
到网上找找状态机的资料,不是你这么理解的
wsnsyy 发表于 2018-6-8 11:23 | 显示全部楼层
那怎么区分短按和长按
 楼主| chest20090909 发表于 2018-6-8 11:46 | 显示全部楼层
wsnsyy 发表于 2018-6-8 11:23
那怎么区分短按和长按

如果按键什么时候抬起由按键者自己决定,那应该怎么设置按键检测呢
按键按下判断及10ms的消抖检测是有的
ifus 发表于 2018-6-8 14:57 | 显示全部楼层
只检测按下后的时间就可以了
 楼主| chest20090909 发表于 2018-6-9 14:49 | 显示全部楼层
ifus 发表于 2018-6-8 14:57
只检测按下后的时间就可以了

是不是在防抖检测后只需要检测按键什么时候抬起就可以了,因为按键闭合时间不定
chongdongchen 发表于 2018-6-9 15:40 | 显示全部楼层
首先你还要知道三个基本要素:
1、防抖,楼主已经知道了
2、检测变化,就是什么时候按下,什么时候放开
3、计时,按下的时候就开始计时,放开清零

结合变化和时间,就可以判断任意按键触发了,当前按钮状态、单击、双击(三四五六。。。)、长按、连击、释放等等,都不在话下了。
 楼主| chest20090909 发表于 2018-6-9 22:55 | 显示全部楼层
chongdongchen 发表于 2018-6-9 15:40
首先你还要知道三个基本要素:
1、防抖,楼主已经知道了
2、检测变化,就是什么时候按下,什么时候放开

如果只是需要按下按键执行一个动作,松开按键执行另一个动作,是不是可以不用计时,只需要判断键值就可以?
chongdongchen 发表于 2018-6-11 08:23 | 显示全部楼层
chest20090909 发表于 2018-6-9 22:55
如果只是需要按下按键执行一个动作,松开按键执行另一个动作,是不是可以不用计时,只需要判断键值就可以 ...

是的,做好消抖就可以
您需要登录后才可以回帖 登录 | 注册

本版积分规则

121

主题

632

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部