Part Number:TMS320F28377D
使用CPU2的CLA时,在仿真器模式下,可以正常更新EPMW比较器的值,能正常输出波形;
下电后重启后,EPWM的比较值无法正常更新,EPMW是由CLA中来访问处理的;
代码如下:
pAxis->pEpwmRegs->pEpmw1Regs->CMPA.bit.CMPA = pAxis->pClaVoltLoop->CMPR1;
pAxis->pEpwmRegs->pEpmw2Regs->CMPA.bit.CMPA = pAxis->pClaVoltLoop->CMPR2;
pAxis->pEpwmRegs->pEpmw3Regs->CMPA.bit.CMPA = pAxis->pClaVoltLoop->CMPR3;
其中 EPWM_REGS_STRUCT *pEpwmRegs;//寄存器地址
该指针由下面的表格进行初始化
const EPWM_REGS_STRUCT epwmRegAddrTable[4] =
{
{&EPwm1Regs, &EPwm2Regs, &EPwm3Regs},
{&EPwm4Regs, &EPwm5Regs, &EPwm6Regs},
{&EPwm7Regs, &EPwm8Regs, &EPwm9Regs},
{&EPwm10Regs, &EPwm11Regs, &EPwm12Regs}
};
//———————————————–
但是不用指针方式对比较寄存器进行操作是,即直接使用如下代码,仿真模式、上电重启后的FLASH模式都是正常的;
EPwm1Regs.CMPA.bit.CMPA = pAxis->pClaVoltLoop->CMPR1;
EPwm2Regs.CMPA.bit.CMPA = pAxis->pClaVoltLoop->CMPR2;
EPwm3Regs.CMPA.bit.CMPA = pAxis->pClaVoltLoop->CMPR3;
问题:CLA对这样的指针方式不支持吗,还有什么限制,为何仿真模式是ok的
Cherry Zhou:
您好我们已收到您的问题并升级到英文论坛,如有答复将尽快回复您。谢谢!
,
Cherry Zhou:
您好,如果 CLA 在连接调试器的情况下成功进行访问,那么在上电复位后应该也会正常工作。 您能提供以下内容吗:
1. 以下值分别是多少:
pAxis->pEpwmRegs
pAxis->pEpwmRegs->pEpmw1Regs
2.地址:
epwmRegAddrTable
通过以上信息我们能够确定 epwmRegAddrTable 或 pAxis->pEpwmRegs 的初始化是否存在任何问题、这可能会在 POR 之后造成一些问题。