新手上路
- 积分
- 40
- 金钱
- 40
- 注册时间
- 2016-1-3
- 在线时间
- 5 小时
|

楼主 |
发表于 2016-1-5 18:32:11
|
显示全部楼层
本帖最后由 stm32435765875 于 2016-1-5 18:36 编辑
//扫描触摸按键
//mode:0,不支持连续触发(按下一次必须松开才能按下一次);1,支持连续触发(可以一直按下)
//返回值:0,没有按下;1,有按下;
#define TPAD_GATE_VAL 100 //触摸的门限值,也就是必须大于tpad_default_val+TPAD_GATE_VAL,才认为是有效触摸.
u8 TPAD_Scan(u8 mode)
{
static u8 keyen=0; //0,可以开始检测;>0,还不能开始检测
u8 res=0;
u8 sample=3; //默认采样次数为3次
u16 rval;
if(mode)
{
sample=6; //支持连按的时候,设置采样次数为6次
keyen=0; //支持连按
}
rval=TPAD_Get_MaxVal(sample);
if(rval>(tpad_default_val+TPAD_GATE_VAL))//大于tpad_default_val+TPAD_GATE_VAL,有效
{
if(keyen==0)res=1; //keyen==0,有效
//printf("r:%d\r\n",rval);
keyen=3; //至少要再过3次之后才能按键有效
}
if(keyen)keyen--; ***************************
//if(keyen==1)keyen--;*************************** //if(keyen>0)keyen--;******这四行行加注释是四个写法,只有第一个 if(keyen) 和第三个if(keyen>0)是对的,其他两个是错的....为什么呀..??
//else keyen--******************************
return res;
}
|
|