如图所示,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
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
这个也是目前检测的方向,也没有更好的方法了。
一周热门 更多>