打印
[资源共享]

按键触摸库使用

[复制链接]
手机看帖
扫描二维码
随时随地手机跟帖
41
实际测量不符|  楼主 | 2020-11-29 17:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览

使用特权

评论回复
42
实际测量不符|  楼主 | 2020-11-29 17:56 | 只看该作者

使用特权

评论回复
43
实际测量不符|  楼主 | 2020-11-29 17:57 | 只看该作者
4.3.1 阈值设置
为获得最佳触摸效果,建议采用以下设置阈值方式:
 触摸阈值:为手指触摸后 Differ(计数差值)的 75%
 迟滞值:略大于噪声阈值
 噪声阈值:为实际噪声的 1.5 倍
 其他值:根据设计需要

使用特权

评论回复
44
实际测量不符|  楼主 | 2020-11-29 17:57 | 只看该作者
4.3.2 基准线更新
触摸产品实际工作环境中,由于温度、湿度或外界干扰都会引起触摸计数值的变化。基准线是触摸
测量值的参考计数量,这对于环境影响补偿而言起着重要作用。手指触摸按键的状态(例如,手指触摸
和手指离开状态)是基于基准线建立的参考判断。由于每路触摸通道具有相应的寄生电容,因此所有触
摸通道均有各自的基准线。

使用特权

评论回复
45
实际测量不符|  楼主 | 2020-11-29 17:58 | 只看该作者
基准线以基准线更新的对应阈值参数来跟踪计数变化,确保更新速率与预期应用相互匹配。如果更
新速率过快,那么,基准线将补偿手指产生的所有变量,并不予检测手指移动的情况。如果更新速率过
慢,那么,相对较慢的环境变化可能导致手指出错。开发期间,应验证基准线更新阈值的设置情况。

使用特权

评论回复
46
实际测量不符|  楼主 | 2020-11-29 18:00 | 只看该作者
系统在初始化过程中(CTK_Init()函数)已对开启的各触摸通道设定了对应的触摸基线值。触摸初
始化完成后,要求用户在每次扫描完成后,都要在主程序中调用一次函数 Touch_Signal_Handle(),该函
数会对触摸基线值进行更新。

使用特权

评论回复
47
实际测量不符|  楼主 | 2020-11-29 18:01 | 只看该作者

使用特权

评论回复
48
实际测量不符|  楼主 | 2020-11-29 18:01 | 只看该作者
 毛刺消除复位:使能该功能(即设置毛刺判断条件:HCTouchLib_LIMIT_FACTOR 为非 0;设
置毛刺消除复位计数值:HCTouchLib_OVERHIGH_TIME)时,对于已设定的采样数量
(HCTouchLib_OVERHIGH_TIME)而言,当触摸 Differ 值大于毛刺判断条件后,基准线会被
更新。

使用特权

评论回复
49
实际测量不符|  楼主 | 2020-11-29 18:02 | 只看该作者

使用特权

评论回复
50
实际测量不符|  楼主 | 2020-11-29 18:03 | 只看该作者

使用特权

评论回复
51
实际测量不符|  楼主 | 2020-11-29 18:03 | 只看该作者
 阈值噪声计数值:使能该功能(即将 XDATA_THRESHOLD_NOISE_TIME 配置为非 0 时)配
合噪声阈值(HCTouchLib_SETx_N_THRESHOLD)和手指阈值(HCTouchLib_SETx_F_ THRESHOLD)使用。当触摸 Differ 值小于等于触摸阈值并大于正噪声值时,内部计数值开始
计数,当计数值大于等于阈值噪声计数值后会更新 Baseline。可以防止由于某种干扰或故障,
虽然手指未触摸,但触摸计数差值 Differ 却突然大于所设的正噪声值,导致触摸处于异常工作
状态。

使用特权

评论回复
52
实际测量不符|  楼主 | 2020-11-29 18:04 | 只看该作者
 低基准线自动复位:使能该功能(即将 HCTouchLib_OVERLOW_TIME 配置为非 0 时),配合
噪声阈值(HCTouchLib_ SETx _N_THRESHOLD)使用。当触摸 Differ 值低于负噪声阈值后,
基准线会被更新。可以防止以下情况发生:由于某种干扰或故障,虽然手指未触摸,但触摸计
数差值 Differ 却突然小于所设的噪声阈值,导致触摸处于异常工作状态。

使用特权

评论回复
53
实际测量不符|  楼主 | 2020-11-29 18:05 | 只看该作者
噪声范围内基准线微调:当-噪声<Differ<+噪声时,算**将 Differ 累加至虚拟噪声桶内,如
果虚拟噪声桶的值超过了设置的噪声桶值(HCTouchLib_NOISE_BARREL_CAPACITY),那么
Baseline 会进行微调,每次微调的初始步进为 2。所以如果噪声桶设置的值越大,Baseline 更新
越慢,用户同样可以通过调整微调步进从而修改更新速度。此值可根据用户需求进行调整。

使用特权

评论回复
54
实际测量不符|  楼主 | 2020-11-29 18:05 | 只看该作者
本章节中涉及的以下几个参数转换时长计算方式:
HCTouchLib_CONFIRM_LONGTOUCH_TIME(设置触摸自动复位计数值)
XDATA_THRESHOLD_NOISE_TIME(阈值噪声计数值)
HCTouchLib_OVERHIGH_TIME(毛刺消除复位计数值)
HCTouchLib_OVERLOW_TIME(设置低基准线复位计数值)

使用特权

评论回复
55
实际测量不符|  楼主 | 2020-11-29 18:06 | 只看该作者
其时长的计算方式均相同,如:
触摸自动复位时长≈HCTouchLib_CONFIRM_LONGTOUCH_TIME*单个按键扫描时间*开启的检
测通道数。

使用特权

评论回复
56
实际测量不符|  楼主 | 2020-11-29 18:06 | 只看该作者
单通道扫描时间≈((HCTouchLib_DSCR +1)*256 - 1)/( Fosc/2)
计算举例:
Fosc = 32Mhz
开启通道数 = 6
HCTouchLib_DSCR = 48
HCTouchLib_CONFIRM_LONGTOUCH_TIME = 1000
单通道扫描时间 ≈((48+1)*256-1)/16000000 ≈ 0.7839ms
触摸自动复位时长 ≈ 0.7839ms * 6 * 1000 ≈ 4.7s
注:为了简化计算,HolyChip 提供了一个自动计算的 Excle 表格,放置于各工程下,用户自行试
用计算相关时间。

使用特权

评论回复
57
实际测量不符|  楼主 | 2020-11-29 18:07 | 只看该作者
4.3.2.2 抗干扰
对于整个触摸系统而言,遭遇干扰的表现为当前计数值(RawData)突变,这个值可能会突然下降
或者突然上升,用户需要通过配置 HCTouchLib_CONFIRM_LONGTOUCH_TIME、
HCTouchLib_LIMIT_FACTOR、HCTouchLib_OVERHIGH_TIME、HCTouchLib_OVERLOW_TIME 几个
值来确保 Baseline 不会再遭遇 RawData 突变时随之更新,导致干扰结束后 Baseline 无法恢复到正常的值,
从而使得按键触摸无效。

使用特权

评论回复
58
实际测量不符|  楼主 | 2020-11-29 18:07 | 只看该作者
下图为触摸系统遭遇的外部电磁干扰的图形

使用特权

评论回复
59
实际测量不符|  楼主 | 2020-11-29 18:08 | 只看该作者
如图所示,整个系统中的干扰区间被大概分成了 5 个,其中 1 号区间的干扰持续时间最长,那么设
置 HCTouchLib_OVERLOW_TIME 的时常就需要超过这个区间的时长即可,这样的话就可以确保这种非
持续性的干扰导致 Baseline 的降低。

使用特权

评论回复
60
实际测量不符|  楼主 | 2020-11-29 18:09 | 只看该作者
但是设置 HCTouchLib_OVERLOW_TIME 的时常不可以过长,否则遇到用户手指按在按键上上电后
恢复正常 Baseline 的时间过长,从而导致用户体验较差。
设置 HCTouchLib_OVERHIGH_TIME 的方式则与上面相同。

使用特权

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

本版积分规则