dsPIC的除法运算

2020-02-09 11:40发布

使用dsPIC30F2020中间有一个除法,a/b,需要的到后面的小数值。
应该最简单的就是用a*(1/b)了,而且这样可以使用dsp内核计算,手工算出1/b是一个很小的数,然后乘a,a为INT型,但是使用DSP内核后读出的结果是0!不知道是什么原因,难道这样除不行吗?那还有没有其它方法呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
18条回答
liansh
2020-02-09 23:29
回复【3楼】xyufo2000  
-----------------------------------------------------------------------

不是精度的关系,主要是我用MPLAB SIM仿真来看float型除法要将近500个指令周期,太夸张了!

回复【4楼】headwolf_83  
-----------------------------------------------------------------------

这个数除出来要送到PID环节里面去调整用的,由于调整量是一个比例系数(小于1),所以必须要有小数,而且这两个值一个是INT型,一个是LONG型的,然后再放大有些麻烦了。


回复【5楼】xyufo2000  
-----------------------------------------------------------------------

确实一个是INT,一个是Q15格式。是不是这样不行啊?用MPLAB仿真环境这样仿真其它计算好像没有问题!只是小数位不见了!

一周热门 更多>