程序中调用DEALY_US 函数,发现延时时间不准,如期望延时208uS,实际通过IO测得延时有300uS。看代码DELAY_US也是在RAM中运行,希望TI专家们解答一下!谢谢!
部分代码片段如下
.def _DSP28x_usDelay
.sect "ramfuncs"
.global __DSP28x_usDelay
_DSP28x_usDelay:
SUB ACC,#1
BF _DSP28x_usDelay,GEQ ;; Loop if ACC >= 0
LRETR
void main(void)
{
DINT;
InitSysCtrl();
InitGpio();
InitECanGpio();
IER = 0x0000;
IFR = 0x0000;
InitPieCtrl();
InitPieVectTable();
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
InitFlash();
。。。
}
可以尝试参考下面帖子的DELAY_US总结:
我建议您使用C2000Ware中提供的延迟功能。 您使用的是哪个版本的C2000Ware?
请查看此论坛帖子以了解更多信息: