我用28035的片子,想用ti官方提供的clamath,但是用到CLAdiv()函数时,这个计算的结果为啥有的时候是错的,符号是反的,例如CLAdiv(1800,7200)的返回值是-0.25,。确切的说是,这行代码放某一段程序里是对的,放在另外一段程序里就是反的,很奇怪。
另外,我想问下,如果用CLAdiv()计算除法跟直接用‘/’计算有啥区别,是不是CLAdiv()会快一点?
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.
我用28035的片子,想用ti官方提供的clamath,但是用到CLAdiv()函数时,这个计算的结果为啥有的时候是错的,符号是反的,例如CLAdiv(1800,7200)的返回值是-0.25,。确切的说是,这行代码放某一段程序里是对的,放在另外一段程序里就是反的,很奇怪。
另外,我想问下,如果用CLAdiv()计算除法跟直接用‘/’计算有啥区别,是不是CLAdiv()会快一点?
.cla文件中相关程序如下:
……
if(bBoost[wBoostNo]==cOn)
{
fPVRef[wBoostNo] = CLAdiv((float)wPVRef[wBoostNo] , 5);
ftempCla = (float)wMBusRef / 5;
DdeltV = (fBusVolt - fBusVoltOld) * fPVVolt[wBoostNo] * 6000;
DdeltV = CLAdiv(DdeltV,(fBusVoltOld * fBusVolt));
sCalBoost();
}
else
{
wDutyBoost[wBoostNo] = 0;
wDutyBoostOld[wBoostNo] = 0;
}
……
红字的那一行,结果是错的,刚好多了个负号,wPVRef[wBoostNo]对应的数值是750,但计算出的结果是-150。如果直接用‘/’,计算的结果就是对的。