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.
您好!
我的 ePWM 模块中的影子寄存器´ve 问题。 我´ve 配置了它们、CMPA 寄存器、TBPRD 寄存器和 AQCTLA 寄存器被加载到 TBCTL=ZRO 上。 我每隔一段时间编写一次。
我在调试n´t 中观察到了寄存器、并注意到影子寄存器被使用了 μ C。 这些值直接写入活动寄存器。
这就是我配置影子寄存器的方式:
EPwm2Regs.CMPCTL.bit.SHDWAMODE = CC_SHADODE; //每0加载一次寄存器
EPwm2Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm2Regs.TBCTL.bit.PRDLD = 0;
EPwm2Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
EPwm2Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
EPwm2Regs.AQCTL.bit.SHDWAQAMODE = 1;
EPwm2Regs.AQCTL.bit.LDAQAMODE = 0;
EPwm2Regs.AQCTL.bit.LDAQASYS = 0;
通常、影子寄存器应该被使用并载入 TBCTR=ZRO 上的活动寄存器中、对吧?
我希望您能帮我解决我的问题。
此致、
Jens
正在使用影子。 您不会看到内部阴影副本。 当您写入寄存器时、调试窗口将显示您上次写入的值。 内部影子副本将在您选择的事件时更新。
您好!
我很确定不使用影子寄存器。 在调试模式下、CMPA 寄存器在我写入它时立即更新。 SHDWAFULL 位也不置位。
此致、
Jens
您在调试窗口中看到的面向外的寄存器是影子寄存器。
n´t、在对影子寄存器执行写操作后、是否应将 SHDWAFULL 位置位? 在我的应用程序中、SHDWAFULL 一直为0、但是如果使用影子寄存器、则写入后它应该为1、并且在加载事件发生后重新返回到0。 对吧?
此致、
Jens
是的、正确的、将 EPWM 模块的仿真模式设置为在调试器停止器件时冻结、然后在写入寄存器后放置 ESTOP0以查看阴影的状态。