OpenEdv-开源电子网

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

对于输入捕获TPAD的一点疑问

[复制链接]

8

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2012-10-18
在线时间
7 小时
发表于 2013-6-3 22:04:15 | 显示全部楼层 |阅读模式
    开发指南里面说“开启TIM5_CH2的输入捕获,检测上升沿,当检测到上升沿的时候,就认为电容充电完成了”,可是这个
通道应该是连接到一个电容上的,现在搞不懂的就是电容的电压在慢慢升高,要升高到多少才算是上升沿,求解释,谢谢!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-1-29
在线时间
0 小时
发表于 2013-8-7 14:53:36 | 显示全部楼层
当我的世界不一样,那就让我不一样
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2013-8-7 17:39:55 | 显示全部楼层
在STM32的数据手册,里面有电气特性,描述了其高电平的值,你就按典型值取值就是了,貌似是2V.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-1-29
在线时间
0 小时
发表于 2013-8-7 21:56:03 | 显示全部楼层
但是为什么一有上升沿就认为充电完成呢,是因为电容充电很快吗~~
当我的世界不一样,那就让我不一样
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2013-8-7 22:48:03 | 显示全部楼层
回复【4楼】越不出雷池:
---------------------------------
是因为到了高电平阀值后,就可以让STM32检测到了,就达到目的了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-1-29
在线时间
0 小时
发表于 2013-8-8 17:30:56 | 显示全部楼层
原子哥,谢啦~~能再请教两个TPAD问题吗?
Q1:else if(keyen>2)keyen=2;  //如果检测到按键松开,则直接将次数降为2,以提高响应速度

事实上正如注释所言,确实是为提高响应速度所为,但是为什么不直接减少keyen的初始值5呢?

Q2: rval=TPAD_Get_MaxVal(sample); 
 if(rval>(tpad_default_val+TPAD_GATE_VAL))//大于tpad_default_val+TPAD_GATE_VAL,有效
 {      
    rval=TPAD_Get_MaxVal(sample); 
    。。。。。。

这里有两次检测rval的取样,第一次已经确认是有效按键了,为什么第二次还要去取样呢?
当我的世界不一样,那就让我不一样
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2013-8-8 18:03:16 | 显示全部楼层
1,确实可以直接写成等于2了.或者把keyen=5;放到前面的if里面去.
2,类似按键的消除抖动.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

97

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
486
金钱
486
注册时间
2019-12-6
在线时间
151 小时
发表于 2023-9-7 13:11:52 | 显示全部楼层
正点原子 发表于 2013-8-8 18:03
1,确实可以直接写成等于2了.或者把keyen=5;放到前面的if里面去.
2,类似按键的消除抖动.

想问下原子哥,tpad_rest()这个复位函数,本来就使得电容在充放电了,有充放电自然TPAD引脚就产生了高低电平(波形就产生了),自然就有了上升沿了和下降沿,那这样我们手都没按下去,波形都产生了(请看图一),那岂不是定时器时时刻刻都在采到了上升沿了,那这句等待上升沿的语句还有啥用while (__HAL_TIM_GET_FLAG(&g_timx_cap_chy_handle ,flag) == RESET) //等待上升沿,我在想我们判断手指按没按下去的依据根本不是什么上升沿的到来,而是依据手指按下去和没按下时候充电到某一个阈值的时间差来确定手有没有按下,还有一个问题就是手指按下去的时候电容充电可以充到4.8V(电源不是3.3V吗,按理说电容充电电压不能大于电源电源呀.4.8V?)(请看图二)C:\Users\Administrator\Pictures\图片一  C:\Users\Administrator\Pictures\图片二
回复 支持 反对

使用道具 举报

10

主题

97

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
486
金钱
486
注册时间
2019-12-6
在线时间
151 小时
发表于 2023-9-7 13:22:58 | 显示全部楼层
正点原子 发表于 2013-8-8 18:03
1,确实可以直接写成等于2了.或者把keyen=5;放到前面的if里面去.
2,类似按键的消除抖动.

补图片
图二.jpg
图一.jpg
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-24 17:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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