我用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:
我好想也遇到了这个问题,请问你上面符号的问题解决了吗