在 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?