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.

[参考译文] TMS320F2809:关于%运算符的使用

Guru**** 2520540 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1070439/tms320f2809-about-the-use-of-the-operator

部件号:TMS320F2809

尊敬的团队:

我的客户是否想知道 CCS6.2对%操作有什么特殊要求?
他发现,在对以下内容进行编程后,结果并不是他所期望的:

Uint16 eshCNT = 0;
Uint16 yu=0;

void Fun(){

yu=eshCNT%10;

if (yu == 0)
{
GpioDataRegs.GPASET.bit.GPIO10 = 1;
DELAY_US(500);
GpioDataRegs.GPACLEAR.bit.GPIO10 = 1;
eshCNT=0;
}
if (yu == 1)
{
GpioDataRegs.GPASET.bit.GPIO10 = 1;
DELAY_US(800);
GpioDataRegs.GPACLEAR.bit.GPIO10 = 1;
}
if (yu == 2)
{
GpioDataRegs.GPASET.bit.GPIO10 = 1;
DELAY_US(1000);
GpioDataRegs.GPACLEAR.bit.GPIO10 = 1;
}
eshCNT++;

}

在上述程序运行期间,800us 期间的高电平信号将会丢失,而只有500和1000US 期间的高电平信号将会丢失。

此致

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

    在其他 CCS 版本中,您是否看到类似的操作?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="306637" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1070439/tms320f2809-about-use-of-operator"]我的客户想知道 CCS6.2对%操作的特殊要求是什么?

    无。  %操作由编译器 RTS 库中的函数执行。  它是以组装方式编写的。  它使用 SUBCU 指令周围的循环。  自20年前首次发布编译器以来,它一直在这样做。   

    尝试在 IF (yu ==1)块内设置断点。  它是否会被击中?

    非常感谢

    乔治