你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
mylovemcu 发表于 2020-1-7 12:54 一般就是长按和短按 也可以增加快速按键两次 功能做多了 容易出现误操作 不太实用了 ...
查看全部评分
虽然在不同场景下按键动作的功能不一样,但是动作的键值都是一样的。
假设主页中的菜单键和另一个界面的进入键都是实体按键A,那么按下菜单键或进入键,对应的都是实体键A的按下动作,就发送按下的键值,其他动作同理。
这样效果不错,也简单。
2. 定义两个变量分别用于对两个按键按下进行计数,释放为0,按下则自动按扫描周期累加1;这样就可以用于判断按键是长按还是短按。
3. 根据场景状态、按键功能定义、按键计数变量,就可以在按键程序中进行各种功能处理了。
我意思是按键怎么才能在不同场景下实现不同的作用,比如一楼说的“菜单键”、“选择键”两种作用
当然了,尽量做一个大一统的方法也是另一种思路,只是我个人觉得这样写出来的代码会有点复杂,不是那么好维护。以上只是个人观点
评分
查看全部评分
这样就可以区分长按与短按,我就是这么处理的
struct KEY{
key_name;
last_change_tick;
last_io;
};
struct KEY key_data[32];
struct KEY_EVENT{
key_name;
key_event;//
};
任务层20ms扫描更新一次所有按键值一个u32 key_io可以表示32个键按下松开状态,检测并更新key_data[]数组,同时根据实际发出按键信号,
其实参考简化 linux输入子系统即可
评分
查看全部评分
评分
查看全部评分