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.
我使用 TMS320F28069来控制电源转换器、我需要两个 PEM 信号、其中一个信号的频率是另一个信号的两倍。 我在同时更新两个 PWM 信号(它们的 CMPA 寄存器)时遇到问题、因为该寄存器在 CTR = PRD 时更新、这两个信号是不同的。 是否有方法可以同步这两个寄存器、以便在 低频信号的 CTR = PRD 时更新?
Saad、
在较低频率 PWM 的 CTR = PRD 上、没有更新2个 PWM 的内置功能。
尝试以下操作: 将 PWM 配置为在 TBCTR = PRD 上具有中断、在周期中间(较慢 PWM 的周期)、较快的 PWM 将具有中断、尝试使用该中断中的影子寄存器更新两个 CMPA 值。 我想这将为您带来所需的结果。
如果这不会产生所需的效果、您应该能够在软件中使用一些简单变量来同步它。 只需创建一个变量、该变量将在较慢 PWM 的前半部分阻止对 CMPA 的写入、您就可以在 PWM 的 ISR 中更新此变量。
此致、
Cody
我尝试过这么做。 它的工作原理。 现在、我将遇到另一个问题。 当我写入该 ISR 中的 ePWM 寄存器时、每个写入操作至少需要4条指令。 例如
EPwm1Regs.CMPA.half.CMPA = X;具有以下组件:
008025:761F0280 MOVW DP、#0x280
008027:921B MOV AL、@0x1b
008028:761F01A0 MOVW DP、#0x1a0
00802a:9609 MOV @0x9、AL
我们可以减少每次 ePWM 写入的指令数量吗?