• 正文
  • 相关推荐
申请入驻 产业图谱

杰理AC696N开发分享——ADKEY按键长按触发时间

06/06 15:50
443
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

引言

蓝牙音箱类的PCB设计绝对少不了按键,无论是实体物理按键还是触摸按键,都需要控制模块更换模式或者音量加减和音乐的上/下曲,更加分为长按和短按,唯独长按部分在软件设计的时候容易出错,长按的触发时间长短的区分,时间一长也许就没反应了。

复现:设计过程反馈长按时间设置成8s没反应,75改成 大于240就无效, 小于240就有效。达不到8秒的效果。

分析解决

首先设置长按时间的位置如图:

在这里改动long_time这个结构体成员即可,在改动过大时,他还是大概3秒的效果;这时我们想实现更长的触发时间我们可以通过计数的方式实现这种效果在hold下创建新的宏去处理KEY_POWEROFF的事件

初始化变量

KEY_POWEROFF不做处理,通过新创建的KEY_POWEROFF_HOLD去处理关机事件,通过计数的方式判断按下一段时间后触发对应函数,在抬起时再重置计数

先在开发板上用标准ADKEY电阻验证参数,再移植到产品板。注意添加软件去抖动滤波,避免电压波动导致误触发或连击。

相关推荐