请问老师输入捕获的脉冲数量总是少于预期值,该怎么办啊!

2019-07-20 07:45发布

老师好
我用的是探索者F4开发板,输入捕获的实验我做完了,我通过TIM14产生4KHz的PWM,然后通过TIM5的通道1也捕获到了,现在我想测试一下输入捕获是否有丢失,也就是统计一下捕获到的脉冲个数,这其中遇到了点问题。

我是这样做的,

首先是配置TIM14的PWM输出,其他部分都和教程一样,只有自动重载值和脉宽调整了一下。
TIM14_PWM_Init(250-1,84-1); //84M/84=1Mhz的计数频率计数到250,PWM频率为1M/250=4Khz
TIM_SetCompare1(TIM14,125); //脉宽125

1、定义了变量v_count,用来记录捕获的脉冲个数,
2、在TIM5的中断中,当捕获到上升沿时,v_count++;
3、用TIM3定时,每秒打印一次 v_count
   
PWM的频率4KHz,每秒应该会产生4000个脉冲信号(我这样计算对不对呀老师?),
实测每秒捕获到3996个,少了4个,而且这个数值很稳定。请问老师这是什么原因呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
szczyb1314
1楼-- · 2019-07-21 11:42
 精彩回答 2  元偷偷看……
牛仔很忙
2楼-- · 2019-07-21 13:39
szczyb1314 发表于 2018-6-8 08:56
你想捕获1.5M的频率?这个太快了(捕获中断太快了),估计做不到,勉强做到也是有误差的吧,你可以试试, ...

老师,我用USART1->DR=DATA试过,捕获没问题,但最终把捕获结果显示出来才算OK。您看能不能给提供些思路,我再尝试一下。多谢多谢
牛仔很忙
3楼-- · 2019-07-21 15:41
 精彩回答 2  元偷偷看……
szczyb1314
4楼-- · 2019-07-21 17:22
 精彩回答 2  元偷偷看……
牛仔很忙
5楼-- · 2019-07-21 17:37
szczyb1314 发表于 2018-6-9 07:36
如果是捕获1.5M的信号是正确的,那么久简单了,简单点做:第1s发送高八位,第2s发送中间八位,第3s发送低 ...

试过了,效果不理想,再想其他办法吧。

一周热门 更多>