OpenEdv-开源电子网

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

输入捕获实验的最小捕获时间问题请教

[复制链接]

4

主题

7

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2014-6-14
在线时间
6 小时
发表于 2017-3-22 10:44:31 | 显示全部楼层 |阅读模式
10金钱
单片机是F407,输入捕获用定时器5的CH1,该定时器最高频率84M,也就是精度最高应该能达到1/84M=0.012us。用原子哥的例程直接跑,由于是上升沿和下降沿分开捕获,中间切换的时候会有计数值丢失,优化了下代码,能捕获2us以上的脉冲。小于该值捕获值不正确。

然后我把捕获改为边沿捕获,计数器不清0,采用两个计数值相减的方式,这种方式可以最小捕获0.84us,小了就捕获值不对。
但是各种实验都比理论最高精度0.012us相差甚远,最小捕获值和精度是两个概念,如果一个计数值之后发生捕获,最小捕获值应该是0.012us。
不知道是哪里有问题,有什么方法提高最小捕获值。想捕获0.5us就行了。
请高手帮我分析分析。谢谢

最佳答案

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

直接用定时器的PWM输入模式,来捕获。这种捕获一个电平(两个边沿),是不需要产生中断的。他通过2个CCRx,一个来存储上升沿时的CNT值,另外一个存储下降沿时的CNT值,来实现脉宽统计,这种方式就是STM32能分辨的最高能力了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-3-22 10:44:32 | 显示全部楼层
直接用定时器的PWM输入模式,来捕获。这种捕获一个电平(两个边沿),是不需要产生中断的。他通过2个CCRx,一个来存储上升沿时的CNT值,另外一个存储下降沿时的CNT值,来实现脉宽统计,这种方式就是STM32能分辨的最高能力了。
回复

使用道具 举报

4

主题

7

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2014-6-14
在线时间
6 小时
 楼主| 发表于 2017-3-22 20:48:24 | 显示全部楼层
正点原子 发表于 2017-3-22 10:44
直接用定时器的PWM输入模式,来捕获。这种捕获一个电平(两个边沿),是不需要产生中断的。他通过2个CCRx, ...

PWM输入模式是怎么配置的,参考手册好像没看到有这种模式,能不能大概贴点代码看下,我是新手,谢谢。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 01:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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