捕获PWM占空比精度的问题
时间:10-02
整理:3721RD
点击:
各位高手请教下!
小弟最近想通过stm8s系列芯片定时器捕获功能捕获PWM方波占空比,发现PWM频率在1k以下时,能捕获到99%的占空比,当PWM频率增加时,捕获到的精度受影响,比如PWM为20KHz时,70%占空比以上的PWM,芯片捕获出来的占空比值不准确,变成了50%左右的值。请问这是什么原因?
相应捕获中断程序如下:
if(TimeCount1==0)
{
//边沿对齐
TIM2->CCER1 |=0x20; //捕获下一个下降沿
TimeCount1=TIM2_GetCapture2();
}
else if(TimeCount2==0)
{
TIM2->CCER1 &=0xDF; //捕获下一个上升沿
TimeCount2=TIM2_GetCapture2();
}
else if(TimeCount3==0) TimeCount3=TIM2_GetCapture2();
通过Duty=(TimeCount2-TimeCount1)/(TimeCount3-TimeCount1);得出占空比。
小弟最近想通过stm8s系列芯片定时器捕获功能捕获PWM方波占空比,发现PWM频率在1k以下时,能捕获到99%的占空比,当PWM频率增加时,捕获到的精度受影响,比如PWM为20KHz时,70%占空比以上的PWM,芯片捕获出来的占空比值不准确,变成了50%左右的值。请问这是什么原因?
相应捕获中断程序如下:
if(TimeCount1==0)
{
//边沿对齐
TIM2->CCER1 |=0x20; //捕获下一个下降沿
TimeCount1=TIM2_GetCapture2();
}
else if(TimeCount2==0)
{
TIM2->CCER1 &=0xDF; //捕获下一个上升沿
TimeCount2=TIM2_GetCapture2();
}
else if(TimeCount3==0) TimeCount3=TIM2_GetCapture2();
通过Duty=(TimeCount2-TimeCount1)/(TimeCount3-TimeCount1);得出占空比。
请问51可以捕获吗?,我也特想做一个单片机装置,可以测出来PWM的占空比。请问怎么做?
这位大哥,请问你用51的做好了吗?能否让我学习一下,
就在收集这些资料,谢谢