默认状态下触摸按键所有键的灵敏度是一样的,但是实际应用不是这样的。各个键都有可能不一样。
实现不同灵敏度的方法如下:
TSL_SCKey_Init()函数里面初始化了灵敏度
pKeyStruct->DetectThreshold = SCKEY_DETECTTHRESHOLD_DEFAULT;
我们增加一个数组,保存各个按键的灵敏度:
const u8 SCKEY_DETECTTHRESHOLD[NUMBER_OF_SINGLE_CHANNEL_KEYS]
=
{
SCKEY_DETECTTHRESHOLD_DEFAULT, // for TS1
SCKEY_DETECTTHRESHOLD_DEFAULT - 5 // for TS2, TS2 sensitivity is lower
};
把之前的pKeyStruct->DetectThreshold = SCKEY_DETECTTHRESHOLD_DEFAULT;
改为pKeyStruct->DetectThreshold = SCKEY_DETECTTHRESHOLD[KeyIndex];即可
按键响应时间计算
按键的响应时间取决于很多参数,比如通道数量、防抖滤波器的值、重复采样值、用户固件工作任务、电介质厚度、电极电容和电阻R的值。
如下公式可以用来估算最大的按键响应时间:
最大响应时间 = [(DF+1) x tS x NB_channels] + (DF x tU)
这里:
tS = 近似1ms (对于一个通道的标准 RC 采集时间)
NB_channels = 通道的编号
DF = 防抖动的滤波器的值(用户可编程)
tU = 用户固件的执行时间
例如:对于一个4个按键的应用:
DF = 2 (标准值)
tS = 4 ms
tU = 1 ms (例子/取决于应用)
响应时间 = 14 ms (在该配置情况下)
|