最近在算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
|