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.

[参考译文] TMS320F28377S:无法在 CLA 任务中修改 PWM CMPA 的值

Guru**** 2451970 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/906558/tms320f28377s-the-value-of-pwm-cmpa-cannot-be-modified-in-the-cla-task

器件型号:TMS320F28377S
主题中讨论的其他器件:C2000WARE

尊敬的团队:

我使用了两种方法来更新 CLA 中的 CMPA 值、但没有成功:

:1 μ H

中断空 Cla1Task1 (void)
{
//local Variables

//i=fGridVoltRatio;

//Code
__debugstop();
//int I;

Num = 100.0;
Den = 10.0;

//i++;
GpioDataRegs.GPATOGGLE.bit.GPIO20 = 1;
__meallow ();
EPwm12Regs.CMPB.CMPB = 10;
EPwm1Regs.CMPA.bit.CMPA = 100;
_medis ();
//
/* if (EPwm1Regs.CMPA.bit.CMPA >=400)
{
EPwm1Regs.CMPA.bit.CMPA--;
}
if (EPwm1Regs.CMPA.bit.CMPA <= 40)
{EPwm1Regs.CMPA.bit.CMPA
=};
=


Dn = DRES/ DNum +



可以 确保程序已进入 CLA 任务、因为 GPIO20已被反转并且 RES 值已被计算。  但是,当单步调试时,寄存器“EPwm1Regs.CMPA.bit.CMPA”中的值始终是 I 初始化的值,而不是100

方法2:

中断空 Cla1Task1 (void)
{
//local Variables

//i=fGridVoltRatio;

//Code
__debugstop();
//int I;

Num = 100.0;
Den = 10.0;

//i++;
GpioDataRegs.GPATOGGLE.bit.GPIO20 = 1;
__meallow ();
EPwm12Regs.CMPB.CMPB = 10;
EPwm1Regs.CMPA.bit.CMPA = Num;
_medis ();
//
/* if (EPwm1Regs.CMPA.bit.CMPA >=400)
{
EPwm1Regs.CMPA.bit.CMPA--;
}
if (EPwm1Regs.CMPA.bit.CMPA <= 40)
{EPwm1Regs.CMPA.bit.CMPA
=};
=


Dn = DRES/ DNum +





我使用 Num 将值分配给 EPwm1Regs.CMPA.bit.CMPA。单步调试时,Num 将变为10.0,但 EPwm1Regs.CMPA.bit.CMPA 的值没有改变。 它仍然是我的初始化值。

当我在 CLA 中更新 CMPA 寄存器的值时、我还需要注意什么吗?

此致

 

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

    您好!

    如何验证 CMPA 寄存器未更新? 您是查看了 ePWM 输出波形还是仅在 CCS 表达式窗口中观察到寄存器值、因为表达式窗口中的更新值只能从 C28x 调试范围观察、而不能从 CLA 调试范围观察到。 请告诉我您的验证方法、以便我对问题进行进一步分析。

    此外、您还可以参考 C2000Ware 下 F28004x CLA driverlib 示例中提供的类似示例"cla_ex4_PWM_control"、该示例还更新了 CLA 任务内 ePWM 的 CMPA 寄存器、以更新 PWM 输出的占空比。

    如果我的回复回答了您的问题、请点击位于我帖子底部的"我的问题已解决"按钮。

    此致

    Himanshu