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.

[参考译文] CCS/TMS320F28027F:ePWM 影子寄存器有疑问?

Guru**** 2563730 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/638138/ccs-tms320f28027f-epwm-shadow-register-question

器件型号:TMS320F28027F

工具/软件:Code Composer Studio

我更改由 EPMW1触发的 ADC 中断中 EPWM2和 EPWM3的周期。

TBCTR > TBPRD,原因?

此外,我还设置了 LOADAMODE=3,这意味着冻结(不可能加载),但它仍然会因代码而改变,为什么?

EPwm3Regs.CMPCTL.bit.SHDWAMODE = CC_SHADODE;//每0加载一次寄存器

EPwm3Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;

EPwm3Regs.CMPCTL.bit.LOADAMODE = CC_LD_DISABLE;

EPwm3Regs.CMPCTL.bit.LOADBMODE = CC_LD_DISABLE;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Emma、

    我不希望 TBPRD 大于 TBCT、以下是一些可能出错的地方:  

    1. 表达式窗口中的一些值是旧的、过时的。
    2. TBPRD 最近被更改为一个低于 TBCTR 值的值。  
      1. 当发生这种情况时、TBCTR 将继续计数、直到它溢出并最终计数到 TBPRD、然后恢复正常运行。 如果发生这种情况、您应该会看到比预期的低电平或高电平时间更长的时间。 注意:如果提供了同步脉冲、它可以通过在 TBCTR 溢出之前将其重置来纠正这种情况。
    3. 这里也可能有一些断点正在运行、您在读取这些值时是否停止代码?

    我不确定您对 LOADAMODE 有什么要求。 如果 LOADAMODE 设置为11b、那么只有 CMPA 不能被更新、该位对是否可以加载 TBCTR 或 TBPRD 没有影响。


    此致、
    Cody