电容触摸按键效果不好!!

2019-07-20 04:25发布

u8 TPAD_Scan(u8 mode)
{
static u8 keyen=1; //0,可以开始检测;>0,还不能开始检测  
u8 sample=3; //默认采样次数为3次  
u16 rval;
if(mode)
{
sample=6; //支持连按的时候,设置采样次数为6次
keyen=1; //支持连按  
}
rval=TPAD_Get_MaxVal(sample); 
if(keyen&&(rval>(tpad_default_val+TPAD_GATE_VAL)&&rval<(10*tpad_default_val)))//大于tpad_default_val+TPAD_GATE_VAL,且小于10倍tpad_default_val,则有效
{  
keyen=0; 

return 1;
}
else if(!((rval>(tpad_default_val+TPAD_GATE_VAL)&&rval<(10*tpad_default_val)))&&((rval>tpad_default_val-100)&&(rval<tpad_default_val+100)))keyen=1;

return 0;
}


在看电容触摸按键这一个实验的时候感觉按键效果不是很好,按住的时候会一直闪
于是自己参照按键那一实验进行修改为上面代码,亲测感觉比原来的效果要好,特来分享,如有哪里写得不好之处,请大家指出
还有就是感觉老师写的不是很好理解,看了我好久,不知道老师为何要这么写?

第一次发帖  新来的  还请多多关照!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
Sai520
1楼-- · 2019-07-20 16:48
 精彩回答 2  元偷偷看……
1057586883
2楼-- · 2019-07-20 18:58
Sai520 发表于 2017-7-20 13:38
大神,我的F4板子,用原程序和你修改的程序还是不行啊。
在不支持连续按的情况下,按住后还是隔不同的时间 ...

你这个代码感觉有问题呀。你这个代码只能第一次进去的时候能够使得res的值为1以后都不行了啊,因为每次你都把keyen的值重置成5了,感觉是这样,请多多指教
liutext
3楼-- · 2019-07-20 19:37
本帖最后由 liutext 于 2018-12-26 22:16 编辑

解决了,感谢前辈

一周热门 更多>