TI中文支持网
TI专业的中文技术问题搜集分享网站

关于28035clamath的问题

我用28035的片子,想用ti官方提供的clamath,但是用到CLAdiv()函数时,这个计算的结果为啥有的时候是错的,符号是反的,例如CLAdiv(1800,7200)的返回值是-0.25,。确切的说是,这行代码放某一段程序里是对的,放在另外一段程序里就是反的,很奇怪。

另外,我想问下,如果用CLAdiv()计算除法跟直接用‘/’计算有啥区别,是不是CLAdiv()会快一点?

Johnson Chen1:

如果方便的话,楼主可以将项目贴上来,我们一起看一下。

 

我用28035的片子,想用ti官方提供的clamath,但是用到CLAdiv()函数时,这个计算的结果为啥有的时候是错的,符号是反的,例如CLAdiv(1800,7200)的返回值是-0.25,。确切的说是,这行代码放某一段程序里是对的,放在另外一段程序里就是反的,很奇怪。

另外,我想问下,如果用CLAdiv()计算除法跟直接用‘/’计算有啥区别,是不是CLAdiv()会快一点?

bo chen1:

回复 Johnson Chen1:

.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。如果直接用‘/’,计算的结果就是对的。

我用28035的片子,想用ti官方提供的clamath,但是用到CLAdiv()函数时,这个计算的结果为啥有的时候是错的,符号是反的,例如CLAdiv(1800,7200)的返回值是-0.25,。确切的说是,这行代码放某一段程序里是对的,放在另外一段程序里就是反的,很奇怪。

另外,我想问下,如果用CLAdiv()计算除法跟直接用‘/’计算有啥区别,是不是CLAdiv()会快一点?

jinquan li:

回复 bo chen1:

我好想也遇到了这个问题,请问你上面符号的问题解决了吗

赞(0)
未经允许不得转载:TI中文支持网 » 关于28035clamath的问题
分享到: 更多 (0)