请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:TMS320F28379D 您好,
我在执行此代码行时有一个奇怪的行为:
div = (float)(ClkCfgRegs.SYSCLKDIVSEL.bit.PLLSYSCLKDIV << 1);
当我越过这条线时,变量 div 为4.0
当我在之后执行此代码行时
sysclkToInClkError = ((mult / div) - ((float) ctr1 / (float) dTMR2_INP_CLK_CTR));
div 发生变化,它必须保持不变,但 div =8.93...
请您找出问题所在。
完整内容如下:
mult = (float) (pCfg->kCC.u16SysPllMult_Imult) + (float) (pCfg->kCC.u16SysPllMult_Fmult) / 4;
if (!ClkCfgRegs.SYSCLKDIVSEL.bit.PLLSYSCLKDIV)
{
div = 1;
}
else
{
div = (float)(ClkCfgRegs.SYSCLKDIVSEL.bit.PLLSYSCLKDIV << 1);
}
/* compute the error */
sysclkToInClkError = ((mult / div) - ((float) ctr1 / (float) dTMR2_INP_CLK_CTR));
此致,
S.Tarik
