M0没有硬件除法,如何高效得实现较大的除法算式??

2019-12-30 19:25发布

电机PI调速时,计算速度值时遇到一些问题。
计算速度时用到一个位数较大的除法,原来用的是 TI 的 DSP 没有问题,后移植到 M0 时出问题。
后来发现 M0 没有硬件除法指令,计算时耗时很大,导致异常。
测速采用的 T 法,所以最终简化的公式是:
        Speed = Scaler / T,T 为测得的一个变化量。
速度调节是几个 ms 调节一次,而这个算式得花很长时间,根本无法提供给 PI 模块的速度值来进行调节。

请教大家都是怎么做的?
坛里应该有很多人用 M0 来做电机控制的吧,那于这种除法是怎么来做的,或者怎么来避免?
谢谢~~~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
41条回答
why800
1楼-- · 2019-12-30 20:19
算个除法肯定不需要几个毫秒。你再测试一下一个除法的耗时
styleno1
2楼-- · 2019-12-31 01:42
来源于网络,32位整除需要约150Cycles
笑笑我笑了
3楼-- · 2019-12-31 05:05
定点数就移位啊,T选个好点的数字。
sddp001
4楼-- · 2019-12-31 05:35
优化算法明显能改善的比如凑合整1024,512,256之类的,还有数据计算的过程量数据处理。。。
smartmeter
5楼-- · 2019-12-31 10:07
 精彩回答 2  元偷偷看……
zjlizy3344
6楼-- · 2019-12-31 15:39
值不多就用查表法

一周热门 更多>