初级会员

- 积分
- 92
- 金钱
- 92
- 注册时间
- 2020-6-22
- 在线时间
- 11 小时
|
3金钱
看了原子哥的电容触摸按键实验,看不明白按键扫描函数的机理,有以下几个问题:(1)keyen的作用是什么?
(2)如果keyen=3主函数循环三次之后,keyen不就会置零了吗?
//mode=0:不支持连按;mode=1:支持连按
#define TPAD_GATE_VAL 100
u8 TPAD_Scan(u8 mode)
{
static u8 keyen=0;
u8 res=0;
u8 sample=3;
u16 rval;
if(mode)
{
sample=6;
keyen=0;
}
rval=TPAD_Get_MaxVal(sample);
if(rval>(tpad_default_val+TPAD_GATE_VAL))
{
if(keyen==0)res=1;
//printf("r:%d\r\n",rval);
keyen=3;
}
if(keyen)keyen--;
return res;
}
主函数部分:
while(1)
{
if(TPAD_Scan(0)) //这个if判断三次,keyen变为0
{
LED1=!LED1;
}
t++;
if(t==15)
{
t=0;
LED0=!LED0;
}
delay_ms(10);
}
|
最佳答案
查看完整内容[请看2#楼]
http://www.openedv.com/forum.php ... 499&highlight=keyen去这个网址看看,会有帮助
|