OpenEdv-开源电子网

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

输入捕获实验

[复制链接]

5

主题

8

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2017-6-27
在线时间
4 小时
发表于 2017-7-19 21:12:27 | 显示全部楼层 |阅读模式
1金钱
图中TIM5CH1_CATPTURE_VAL=TIM_GetCapture1(TIM5);//获取当前的捕获值.能否改为TIM5CH1_CAPTURE_VAL=TIM_GetCounter(TIM5)?TIM_GetCapture1(TIM5)和TIM_GetCounter(TIM5)的使用区别是什么?TIM_GetCounter(TIM5)是获取当前cnt,看上去也没错!
能够理解我意思的帮我解答一下吧。感谢
QQ截图20170719210716.png

最佳答案

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

你不会跟踪进去看源码么?操作的寄存器都不一样。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165359
金钱
165359
注册时间
2010-12-1
在线时间
2110 小时
发表于 2017-7-19 21:12:28 | 显示全部楼层
你不会跟踪进去看源码么?操作的寄存器都不一样。
回复

使用道具 举报

13

主题

448

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1755
金钱
1755
注册时间
2015-2-7
在线时间
369 小时
发表于 2017-7-19 23:22:36 | 显示全部楼层
不建议改,当发生捕获中断时,计数器的当前值被锁存到捕获/比较寄存 器(TIMx_CCRx)中,但计数器还在计数,如果中断处理时间长了而读取TIM_GetCounter()的话,结果就不正确了
回复

使用道具 举报

5

主题

8

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2017-6-27
在线时间
4 小时
 楼主| 发表于 2017-7-20 08:35:37 | 显示全部楼层
电子之旅 发表于 2017-7-19 23:22
不建议改,当发生捕获中断时,计数器的当前值被锁存到捕获/比较寄存 器(TIMx_CCRx)中,但计数器还在计数, ...

在pwmdac实验中,也用到GetCapture函数。在此之前我一直以为GetCapture函数是专门为捕获上升沿或者下降沿成功时的所得到的cnt,但是该实验中用这个函数能都得到crr值,且并没有进行相应的捕获初始化以及标志位判断!所以我搞不清楚GetCapture函数的用法了。
QQ截图20170719202016.png
回复

使用道具 举报

13

主题

448

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1755
金钱
1755
注册时间
2015-2-7
在线时间
369 小时
发表于 2017-7-20 09:03:04 | 显示全部楼层
sensenljx 发表于 2017-7-20 08:35
在pwmdac实验中,也用到GetCapture函数。在此之前我一直以为GetCapture函数是专门为捕获上升沿或者下降沿 ...

看一下参考手册就明白了
回复

使用道具 举报

4

主题

349

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1046
金钱
1046
注册时间
2017-5-19
在线时间
335 小时
发表于 2017-7-20 09:09:23 | 显示全部楼层
sensenljx 发表于 2017-7-20 08:35
在pwmdac实验中,也用到GetCapture函数。在此之前我一直以为GetCapture函数是专门为捕获上升沿或者下降沿 ...

GetCapture 读的是CCRx 寄存器的值   
当捕获条件成立时 CPU自动保存 TIMx->CNT中的当前值至 TIMx->CCRx   这肯定比你用GetCount 去查询要准,因为GetCount也是去读TIMx->CNT
回复

使用道具 举报

5

主题

8

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2017-6-27
在线时间
4 小时
 楼主| 发表于 2017-7-20 10:24:06 | 显示全部楼层
wxjhby 发表于 2017-7-20 09:09
GetCapture 读的是CCRx 寄存器的值   
当捕获条件成立时 CPU自动保存 TIMx->CNT中的当前值至 TIMx->CCR ...

是的。其实我也觉得getcapture 得到的会更加准确。
但是在pwmdac实验中,也可以用getcapture 函数,都没有进行捕获判断,照理说应该没有值啊。这是我的疑惑。
回复

使用道具 举报

4

主题

349

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1046
金钱
1046
注册时间
2017-5-19
在线时间
335 小时
发表于 2017-7-20 10:38:03 | 显示全部楼层
这个不知道他要实现什么功能,然后硬件也不知道怎么接的,我没能力分析出来
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-12-22 21:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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