OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6336|回复: 11

触摸按键实验遇到问题

[复制链接]

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2013-5-25
在线时间
0 小时
发表于 2013-5-26 15:27:53 | 显示全部楼层 |阅读模式
初学C,这个问题本想自己搞明白,可是高了一个晚上,上午9点才睡,现在醒来还是没明白,特发此贴,求助:请看红色注释部分

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,???§
 {      
    rval=TPAD_Get_MaxVal(sample);   //此处为什么又再次取值???
  if((keyen==0)&&(rval>(tpad_default_val+TPAD_GATE_VAL)))//?ó??tpad_default_val+TPAD_GATE_VAL,???§
  {
   res=1;
  }   
  printf("r:%d\r\n",rval);                    
  keyen=5;    //??????????5?????ó????°??ü???§   //这里为什么是5???根据我的理解,连续按住按键就会一直赋值5,松开就会赋值2,
                                                                             //那么赋值5意义是什么???

 }else if(keyen>2)keyen=2;  //?????ì????°??ü????,?ò?±????????????2,???á???ì??????
 if(keyen)keyen--;  
 return res;
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2013-5-25
在线时间
0 小时
 楼主| 发表于 2013-5-26 15:28:38 | 显示全部楼层
回复【楼主位】zeroxxx:
---------------------------------
为什么复制过来的注释变成了天文?
回复 支持 反对

使用道具 举报

93

主题

746

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2012-9-16
在线时间
286 小时
发表于 2013-5-26 21:16:16 | 显示全部楼层
好乱!
回复 支持 反对

使用道具 举报

5

主题

70

帖子

0

精华

限制会员

积分
-404
金钱
-404
注册时间
2013-5-17
在线时间
5 小时
发表于 2013-5-26 22:14:38 | 显示全部楼层
论坛要是支持代码 控件 就好了!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-27 01:37:57 | 显示全部楼层
1,读2次是起到一个类似案件消抖的作用.
2,这里确实有点问题,应该把keyen=5放到最里面的括号里面.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2013-8-15
在线时间
0 小时
发表于 2013-12-5 20:30:59 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
请问原子哥,keyen=5,
else if(keyen>2)keyen=2; 
if(keyen)keyen--;这几句是做什么用的啊?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-12-5 21:48:23 | 显示全部楼层
回复【6楼】专注:
---------------------------------
为了让摸起来手感好点。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2013-8-15
在线时间
0 小时
发表于 2013-12-6 09:14:45 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
具体是什么意思呢?不太明白,怎么就能使摸起来手感好点呢
回复 支持 反对

使用道具 举报

5

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2013-8-15
在线时间
0 小时
发表于 2013-12-6 09:43:45 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
请问原子哥,为什么把 static u8 keyen=0;中keyen设置成static,就可以做出连按的功能呢?这里面的道理不是很明白,麻烦原子哥了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-12-6 11:15:35 | 显示全部楼层
回复【8楼】专注:
---------------------------------
你可以试试去掉,亲自体验下。

回复【9楼】专注:
---------------------------------
因为static可以”记忆“之前的情况,从而防止连按。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
93
金钱
93
注册时间
2014-2-19
在线时间
0 小时
发表于 2014-2-21 21:50:56 | 显示全部楼层
回复【楼主位】zeroxxx:
---------------------------------
同求keyen为什么那里变成5了?
一代龙影-KPL
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-2-21 21:55:25 | 显示全部楼层
这个5的设置确实有点问题,设置成3即可.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-11 16:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表