关于输入捕获中遇到的问题,请路过的坛友帮忙看看分析一下

2019-07-20 07:01发布

如图所示,PA0和PA6连接在一起,分别开启定时器TIM3和TIM5,并且用于捕获同一路信号(分别作用于两种场合,同一时间只开启一个定时器,另外一路处于关闭状态)。在使用TIM3的时候,在150kHz范围内,计算频率值精确度可达小数点后6位,绝大部分情况下没有问题。
原理也很简单,在捕获到第一个上升沿时记录当前时间值m0,记录第三个上升沿时间值为m1, 时间差m=(m1-m0),单位为us。已知上升沿脉冲数和时间,套用公式即可计算出频率。


目前碰到一个问题,很不经意的时候,计算出的频率值会变成3906.25Hz,实际情况频率值绝对不是这个,只有几十hz左右。
原本认为是干扰问题,后分析频率值只会跳动为3906.25,不会变成其他数据,并且通过3906.25算出时间差m=512,这个数值大家应该很敏感,很整。另一方面排除干扰的原因:TIM3和TIM5是连接在一起的,只在TIM3捕获这个过程里会出现这个情况,TIM5里从未出现。

有路过的坛友帮忙看看,这个问题出现的可能原因。谢谢!!!
因为这个情况在设备现场调试起来很困难,接线都成问题,所以单步调试这种情况确实不太好用。

现在把TIM3的源码贴上,有软件问题或者可能存在的硬件问题请指教。硬件使用的是F767
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
正点原子
1楼-- · 2019-07-20 09:24
 精彩回答 2  元偷偷看……
l68715553
2楼-- · 2019-07-20 12:38
 精彩回答 2  元偷偷看……
l68715553
3楼-- · 2019-07-20 14:10
正点原子 发表于 2018-7-4 02:28
如果是固定的话,你可以设置个if,当等于你这个特殊值的时候,把相关参数全部打印出来,分析下。

这个也是目前检测的方向,也没有更好的方法了。
l68715553
4楼-- · 2019-07-20 14:25
 精彩回答 2  元偷偷看……
l68715553
5楼-- · 2019-07-20 20:05
暂未发现原因,先结帖。后续有发现持续更新。

一周热门 更多>