ch552g使用torch-pad测试触摸按键遇到的问题

基本工作原理

通过设置好功能在寄存器和控制寄存器检测引脚输入的值。
实际检测阶段分为3个步骤:第一阶段:选择需要检测的阶段,选择扫描周期1或2ms,开启触摸按键中断,然后在87us内为充电准备阶段,87us内数据寄存器的值就是上周期读取的触摸按键的值。第二阶段: 87us后到1或2ms是触摸按键的寄存器读取本周期按键值,第三阶段 :1或2ms后完成一个周期触摸按键检测,然后进入中断,在中断中检测触摸键值
在这里插入图片描述

在这里插入图片描述

1,工作电压的问题

使用5v工作电压,在测试中使用串口打印读取的转换数据,发现只有在5v时才能正常输出,3.3v的输出有问题

2,进入中断后先关闭触摸按键中断

由于扫描周期太短,防止刚离开中断就再次进入中断

3,读取数据的方式

不需要设置任何通信方式,在设置好对应的寄存器后,直接在中断中读取对应寄存器中的值就可以了。
例如,直接将reg_dat = TKEY_DAT;

3.1 电容寄存器中数据不能重复读取

下面三行代码是放在触摸中断中,第一行读取了16bit值,2,3行合起来读取16bit的值,但这三行不能同时出现。 而且数据读取后的值不太相同,乱码的情况可参考

	  reg_dat = TKEY_DAT;// & 0x7FFF; //
//		DAT_H = TKEY_DATH;
//		DAT_L= TKEY_DATL; 

在这里插入图片描述
这种现象的猜想:当DAT_H = reg_dat>>8;DAT_L = reg_dat;,并不是将低位赋值,高位舍弃

3.2 从前面几种读取数值的方式来看最好的数据读取是读取整个16bit位的寄存器值

4,也要考虑干扰噪声的情况

5,不需要再触摸引脚并联电容

有些芯片需要和触摸引脚并联电容,但通过比较发现,若并联电容会发现读取的寄存器的值一直不变

6,中断开启和关闭的位置和很关键

进入中断后立即关闭,当下次检测一个通道时再打开

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值