OpenEdv-开源电子网

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

怎么用通用定时器的输入捕获计算单脉冲宽度?

[复制链接]

2

主题

4

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2011-8-18
在线时间
0 小时
发表于 2011-8-26 19:56:00 | 显示全部楼层 |阅读模式
端口输入了一段高电平,怎么用定时器的输入捕获计算高电平持续的时间啊???
原子能不能提供一个寄存器操作的源代码啊?我刚学习STM32,很多不懂。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-8-27 00:18:31 | 显示全部楼层
回复【楼主位】skyfire:
---------------------------------
输入捕获还没玩过.

捕捉上升沿和下降沿,然后根据这个期间的长短和定时器的频率确定时间.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

13

主题

73

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2011-7-2
在线时间
3 小时
发表于 2011-8-27 09:21:42 | 显示全部楼层
同求啊,超声波距离测试!!
回复 支持 反对

使用道具 举报

2

主题

4

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2011-8-18
在线时间
0 小时
 楼主| 发表于 2011-8-27 09:53:43 | 显示全部楼层
呵呵,我也是超声波测距用。用外部中断计算输入脉冲宽度时好像只能捕获上升沿,没有下降沿,不知是程序问题还是超声波模块问题
回复 支持 反对

使用道具 举报

13

主题

73

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2011-7-2
在线时间
3 小时
发表于 2011-8-27 14:55:06 | 显示全部楼层
我也有一个模块至今还没有测试过,卖家给的51的程序,没法用!! 以下是网上找到的资料,估计可以用到!!
希望能有用.有程序了记得分享下!!

来自:AM论坛



 "这里只是捕获了下降沿,主要是STM32的一个通道只能要么捕捉上升沿,要么捕捉下降沿" 

原来也有和你一样的迷惑,不过在安哥的指点下,可以 

        TIM_ICInitStructure.TIM_Channel     = TIM_Channel_3;//选择通道3 
        TIM_ICInitStructure.TIM_ICPolarity  = TIM_ICPolarity_Falling;//下降沿 
        TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;//通道方向选择 
        TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;/* 每次检测到捕获输入就触发一次捕获 */ 
        TIM_ICInitStructure.TIM_ICFilter    = 8;/* 对分频率没有影响 */ 

        TIM_ICInit(TIM5, &TIM_ICInitStructure); 

        TIM_ICInitStructure.TIM_Channel     = TIM_Channel_4;//选择通道4 
        TIM_ICInitStructure.TIM_ICPolarity  = TIM_ICPolarity_Rising;//上升沿 
        TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_IndirectTI;//通道方向选择 
        TIM_ICInit(TIM5, &TIM_ICInitStructure); 
这样就可以同时捕获两个边沿. 

参见CCMR寄存器的CC*S位

 
回复 支持 反对

使用道具 举报

13

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2011-8-20
在线时间
3 小时
发表于 2011-8-30 15:32:56 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
是啊,原子哥,你赶紧研究研究定时器的输入捕获啊。一直在等你啊。呵呵
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-8-30 19:47:07 | 显示全部楼层
我要有时间才能研究啊。
今天下午公司电脑挂了...悲剧...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

4

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2011-8-18
在线时间
0 小时
 楼主| 发表于 2011-9-1 19:07:07 | 显示全部楼层
什么个情况?:)
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2011-11-12
在线时间
0 小时
发表于 2011-11-20 17:15:34 | 显示全部楼层
坐等原子哥!
回复 支持 反对

使用道具 举报

27

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
177
金钱
177
注册时间
2011-11-23
在线时间
0 小时
发表于 2011-11-27 15:27:21 | 显示全部楼层
回复【5楼】hpy6666:
---------------------------------
这个意思是一个管脚能进行两个(上升沿下降沿)的捕获
我的DHT11只有一个脚怎么接?
回复 支持 反对

使用道具 举报

18

主题

102

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
203
金钱
203
注册时间
2011-11-19
在线时间
4 小时
发表于 2011-11-29 12:48:14 | 显示全部楼层
 我记得"红外接收" 的那个实验有类似的代码,通过计算接收到的脉冲宽度判断0,或者1 。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2012-3-14
在线时间
0 小时
发表于 2012-3-14 11:07:40 | 显示全部楼层
回复【5楼】hpy6666:

---------------------------------
能不能通过捕获一次就测出时间呢
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2014-2-19
在线时间
0 小时
发表于 2014-2-21 23:09:58 | 显示全部楼层
我看了那个脉冲测量 的程序,就一个疑问,假如我先捕获上升沿进入中断,在中断服务函数里面清除计数器的值,然后配置该引脚为下降沿捕获,在下降沿捕获的中断服务函数里面计算时间,会不会有延迟的,大概延迟时间数量级?
参加过电子设计大赛,玩过单片机,搞过DSP,fpga也接触过,可惜学的不精,在此就是来好好研究的,请多多关照
回复 支持 反对

使用道具 举报

1

主题

22

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2014-8-4
在线时间
1 小时
发表于 2014-8-15 21:05:47 | 显示全部楼层
同求超声波 测距程序,折腾了两天,还是不行
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-3 16:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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