新手上路
- 积分
- 49
- 金钱
- 49
- 注册时间
- 2013-5-19
- 在线时间
- 5 小时
|
30金钱
我手头有两个原子哥的开发板 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低电平捕获成为高电平啊?!
|
最佳答案
查看完整内容[请看2#楼]
折腾了一天,我把例程的定时器5改到高级定时器1作输入捕获,我发现居然没这个问题 了。只有在普通定时器且不滤波的情况下才会有这个现象出现。
|