OpenEdv-开源电子网

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

输入捕获

[复制链接]

20

主题

86

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2016-11-19
在线时间
44 小时
发表于 2016-11-27 20:02:13 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 谦虚 于 2016-11-28 21:56 编辑

我在看正点原子的  输入捕获的代码

代码用的是TIM5

我的理解是 TIM5既用于输入捕获,又用于定时。

我个人感觉这样很乱,为什么不 TIM5用于输入捕获,当 捕获到上升沿的时候就启动TIM3开始计时,同时配置TIM5为下降沿,  当捕获到下降沿的时候停止TIM3 读取相应的数值,计算出时间。大致思路是这样的,具体细节再设计

总体上就是为什么不用两个通用定时器呢?



最佳答案

查看完整内容[请看2#楼]

捕获的不就是定时器的计数值吗? 你说的那个属于外部中断开定时器。 和tim5就没什么关系了。 这样的问题在于开定时器3和关定时器三都需要时间,而且时间还不确定,影响精度
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

22

主题

751

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1605
金钱
1605
注册时间
2015-6-10
在线时间
222 小时
发表于 2016-11-27 20:02:14 | 显示全部楼层
捕获的不就是定时器的计数值吗?

你说的那个属于外部中断开定时器。
和tim5就没什么关系了。

这样的问题在于开定时器3和关定时器三都需要时间,而且时间还不确定,影响精度
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13104
金钱
13104
注册时间
2012-11-26
在线时间
3811 小时
发表于 2016-11-27 20:30:18 | 显示全部楼层
脱裤子放屁,多此一举
回复

使用道具 举报

20

主题

86

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2016-11-19
在线时间
44 小时
 楼主| 发表于 2016-11-27 20:33:05 | 显示全部楼层
jermy_z 发表于 2016-11-27 20:30
脱裤子放屁,多此一举

好吧

回复

使用道具 举报

20

主题

86

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2016-11-19
在线时间
44 小时
 楼主| 发表于 2016-11-27 20:34:20 | 显示全部楼层
只是感觉一个定时器 既做这个又做那个功能 感觉很乱
回复

使用道具 举报

3

主题

2165

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5773
金钱
5773
注册时间
2013-11-22
在线时间
1211 小时
发表于 2016-11-27 23:25:03 | 显示全部楼层
一件100块就可以搞定的事,为啥要花200去做呢。。
回复

使用道具 举报

20

主题

86

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2016-11-19
在线时间
44 小时
 楼主| 发表于 2016-11-28 20:16:08 | 显示全部楼层
止天 发表于 2016-11-28 09:34
捕获的不就是定时器的计数值吗?

你说的那个属于外部中断开定时器。

谢谢您
回复

使用道具 举报

20

主题

86

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2016-11-19
在线时间
44 小时
 楼主| 发表于 2016-11-28 20:16:52 | 显示全部楼层
止天 发表于 2016-11-28 09:34
捕获的不就是定时器的计数值吗?

你说的那个属于外部中断开定时器。

嗯  我再看看原子的这个代码  非常感谢您的指点
回复

使用道具 举报

42

主题

171

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
448
金钱
448
注册时间
2016-3-8
在线时间
57 小时
发表于 2016-12-4 12:11:45 | 显示全部楼层
表面上看TIM5既是定时器,又做捕获,但实际上tim5只是定时,真正的捕获是由通道1完成的,也可以由通道2来完成,tim5作为定时是给高电平计时的,你可以改成定时器3,这样定时器5的功能只是用来检测跳变沿,其他作用没有了。还是那样的定时和捕获是连贯的。
回复

使用道具 举报

20

主题

86

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2016-11-19
在线时间
44 小时
 楼主| 发表于 2016-12-4 16:12:15 | 显示全部楼层
ouxili 发表于 2016-12-4 12:11
表面上看TIM5既是定时器,又做捕获,但实际上tim5只是定时,真正的捕获是由通道1完成的,也可以由通道2来完 ...

好  谢谢
回复

使用道具 举报

5

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
440
金钱
440
注册时间
2016-11-7
在线时间
63 小时
发表于 2016-12-8 21:08:24 | 显示全部楼层
if(TIM5CH1_CAPTURE_STA&0X80)//成功捕获到了一次上升沿
                {
                        temp=TIM5CH1_CAPTURE_STA&0X3F;
                        temp*=65536;//溢出时间总和
                        temp+=TIM5CH1_CAPTURE_VAL;//得到总的高电平时间
                        printf("HIGH:%d us\r\n",temp);//打印总的高点平时间
                        TIM5CH1_CAPTURE_STA=0;//开启下一次捕获
                }
temp+=TIM5CH1_CAPTURE_VAL;//得到总的高电平时间 这个是不是不太正确 TIM5CH1_CAPTURE_VA这个不应该未捕获值么 时间跟这个单位不一致吧 想不明白了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-26 03:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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