关于F28335的PWM频率问题
最近在算F28335的PWM时钟频率,其中关键的寄存器下有两个位必须要用到TBCTL.bit.HSPCLKDIV / TBCTL.bit.CLKDIV;根据其定时器时钟频率算法公式为 TBCLK = SYSCLKOUT / (HSPCLKDIV * CLKDIV);
现在,将HSPCLKDIV = 8, CLKDIV = 32;
则: TBCLK = 150M / (32 * 8) = 585.9375 Khz;
目前采用比较中断,周期值为0xFFFF,比较值为7或者8, 产生一个比较中断,比较中断中实现4000个脉冲的发送和边沿翻转(当然方向的改变也在中断中实现,暂时没用到)。
那么根据时钟频率585.9375Khz,比较值7或者8,算出来的频率应该在100Khz多一点,实际过程中,我通过示波器测量发现,该PWM频率为40.84xxKhz,后面两xx会有一定的不稳定。这与我计算的频率有较大的出入。
现在,请教各位,整个过程中,哪里理解错了。 @zhangmangui
@zhangmangui 再来. 看糊涂了,输入时钟频率585.9375Khz,周期值为0xFFFF,算出来的频率应该是 9Hz 左右。
如果上升下降模式,就一半的频率。怎么算出 100Khz? 个人觉得上升或者下降 pwm的频率=主频/(HSPCLKDIV * CLKDIV)/(period+1)
升降的话 pwm的频率=主频/(HSPCLKDIV * CLKDIV)/period/2
页:
[1]