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.

关于28035clamath的问题



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

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