捕获PWM占空比精度的问题

2019-07-16 06:16发布

各位高手请教下!!
小弟最近想通过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);得出占空比。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。