打印
[STM8]

stm8触摸按键开发

[复制链接]
1887|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huangfeng33|  楼主 | 2013-12-7 21:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
默认状态下触摸按键所有键的灵敏度是一样的,但是实际应用不是这样的。各个键都有可能不一样。
实现不同灵敏度的方法如下:
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 (在该配置情况下)




评分
参与人数 1威望 +2 收起 理由
icecut + 2
沙发
icecut| | 2014-5-15 15:44 | 只看该作者
专用的也不一定简单...都会有调试任务..

使用特权

评论回复
板凳
tangcui0613| | 2014-5-16 18:36 | 只看该作者
触摸按键分为好几类的,电阻式,电容式等,不过在实际应用的时候会容易受到外部干扰,看具体的环境。

使用特权

评论回复
地板
拿起书本| | 2014-5-16 21:48 | 只看该作者
详读了STM8S触模设计的相关手册,.stm8s的触摸检测并非使用adc的,而是用计数器的。

使用特权

评论回复
5
nienianhong| | 2014-5-17 08:50 | 只看该作者
利用RC充放电时间

使用特权

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

本版积分规则

506

主题

2446

帖子

8

粉丝