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

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-20 09:28
 精彩回答 2  元偷偷看……
szczyb1314
2楼-- · 2019-07-20 10:17
工程发上来给你试试
正点原子
3楼-- · 2019-07-20 12:36
是不是你的频率就是3996?
牛仔很忙
4楼-- · 2019-07-20 14:40
 精彩回答 2  元偷偷看……
牛仔很忙
5楼-- · 2019-07-20 17:58
 精彩回答 2  元偷偷看……
正点原子
6楼-- · 2019-07-20 18:19
牛仔很忙 发表于 2018-6-3 10:58
老师,我是这样配的:
    TIM14_PWM_Init(250-1,84-1);                //84M/84=1Mhz的计数频率计数到 ...

这个计数,你直接放中断里面吧。

一周热门 更多>