引言
做蓝牙音箱类的PCB设计绝对少不了按键,无论是实体物理按键还是触摸按键,都需要控制模块更换模式或者音量加减和音乐的上/下曲,更加分为长按和短按,唯独长按部分在软件设计的时候容易出错,长按的触发时间长短的区分,时间一长也许就没反应了。
复现:设计过程反馈长按时间设置成8s没反应,75改成 大于240就无效, 小于240就有效。达不到8秒的效果。
分析解决
首先设置长按时间的位置如图:
在这里改动long_time这个结构体成员即可,在改动过大时,他还是大概3秒的效果;这时我们想实现更长的触发时间我们可以通过计数的方式实现这种效果在hold下创建新的宏去处理KEY_POWEROFF的事件
初始化变量
KEY_POWEROFF不做处理,通过新创建的KEY_POWEROFF_HOLD去处理关机事件,通过计数的方式判断按下一段时间后触发对应函数,在抬起时再重置计数
阅读全文
443