This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
在 TRM 中可以很好地说 TBPRD 寄存器必须比 PWM 周期少一个。 因此、如果我想生成40kHz PWM (假设90MHz 运行)、我会将 TBPRD 设置为2250 - 1 = 2249、如果我想生成400kHz PWM、我会将 TBPRD 设置为225-1 = 224
此外、如果我想使400kHz PWM 具有50%的直流、我需要将 CMPA 设置为225/2 = 112.5、因此我将 CMPA 设置为(225/2)-1 = 111、并将 CMPAHR 设置为0.5 * 65536=32768、这样就可以获得良好的 PWM。
但是、我注意到、当我想使40kHz PWM 具有50%直流电时、我需要将250/2 = 1125输入 CMPB 而不是1124。
这现在令人困惑。 何时需要为占空比考虑适当的周期以及何时需要为占空比减1?
Rein、
您只减1是因为计时器从零开始计数、是的、您应该考虑这一点、但误差最小。 因此、我要回答您的问题、说这个世界并不完美、也不会是您的空循环。
在400kHz 时、您将看到+或- 0.222%的误差、具体取决于您选择113还是112。 根据您的系统、您需要选择这些值之一。 一些客户选择对 PWM 信号进行抖动、并在每个周期的112至113之间切换、平均值为50%。 在较慢的信号上、您将看到更小的百分比误差。
您可以使用 HRPWM、但我怀疑这不是必需的。
此致、
Cody