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

DSP2812 除法运算问题

问题1:如上图测试程序所示,用的ccs3.3版本,其中PID_Cur_q[0].Fdb是long型数据,int16定义的是int型的,wx1数组应该算出来的值一样才对,但是通过不同的乘法和除法运算顺序的颠倒,导致最后一个结果异常既:(int16)((fdb*190)/(8192*150))算出的值是-115,实在不知道是怎么回事,不知道哪个大牛能不惜赐教,解答本人疑惑。

问题2:之前还遇到一个问题,代码部分搬移到ram里去运行,由于要在线升级程序,所以把flash的程序擦除重新下载新程序(这部分功能在ram里实现的),但是在擦除后,ram里一运算除法运算就异常退出,也不知道问题出在哪里,还请高人指点。

还请大家帮忙解答,可能是哪里出的问题呢?着急…

user5913223:

回复 mangui zhang:

一开始我可能没有注意到这一点,因为在arm里编译结果都是对的。最后一个式子在DSP中处理的是先计算8192*150,因为两个数都是int型数据所以结果也自动转换为int数据,最高位为符号位,计算后应该是-16384,然后用前面的long型数据运算结果除以这个值得到-115.9几,也就是异常的结果-115了,不知道这样是否是对的呢?那对于连续变量的多次四则运算有什么好的方法可以控制数据超限的问题呢?

赞(0)
未经允许不得转载:TI中文支持网 » DSP2812 除法运算问题
分享到: 更多 (0)