测试原子哥的定时器捕获程序发现有Bug

2019-08-23 16:00发布

我手头有两个原子哥的开发板  mini 板和战舰板  ,我用mini板产生一个上升沿的脉冲, 用战舰板的原子哥的的定时器捕获程序捕获高电平脉冲宽度,然后在串口上打印出来
mini 板上产生的脉冲宽度大于5us都正确,如果很小比如2us,战舰板的捕获则会出现一个原则性错误

mini 板上的程序如下:
int main(void)
{
//初始化部份略
    while(1)
   {
   LED0=1;              //两个开发板的gnd连接到了一起,mini 板的led0  PA8和开发板的  定时器5捕获端口PA0连接到了一起.
   delay_us(2);         //产生一个2us的高电平
   LED0=0;      
   delay_ms(1000);   //产生一个1s 的低电平                       
    }
}


战舰板 捕获
   串口打印结果:  HIGH:1000099 us      

明明我只有产生了一个2us的高电平,就算脉冲宽度太小,捕获不到,那也不能把下面的1s低电平捕获成为高电平啊?!








友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
qiaomai
1楼-- · 2019-08-23 19:08
折腾了一天,我把例程的定时器5改到高级定时器1作输入捕获,我发现居然没这个问题 了。只有在普通定时器且不滤波的情况下才会有这个现象出现。   
正点原子
2楼-- · 2019-08-23 23:56
你直接生成  1000ms高,1000ms低的方波,测试下看看。
qiaomai
3楼-- · 2019-08-24 03:18
 精彩回答 2  元偷偷看……
qiaomai
4楼-- · 2019-08-24 05:45
管理员把我的贴子改成已解决了,其实问题还是存在的。

一周热门 更多>