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

2019-12-30 19:25发布

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

请教大家都是怎么做的?
坛里应该有很多人用 M0 来做电机控制的吧,那于这种除法是怎么来做的,或者怎么来避免?
谢谢~~~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
41条回答
ssclark1988
1楼-- · 2020-01-01 17:32
why800 发表于 2016-5-18 22:17
算个除法肯定不需要几个毫秒。你再测试一下一个除法的耗时

我测了一下时间,占用时间很少,肯定没有ms级别的,虽然不是非常精确。但是现象却非常奇怪,只要有这条除法的语句就不正常,不管计算出来的参数结果用没用。
ssclark1988
2楼-- · 2020-01-01 22:28
styleno1 发表于 2016-5-19 10:36
来源于网络,32位整除需要约150Cycles

谢谢,我测过时间确实是短的,根本不到ms级别的
ssclark1988
3楼-- · 2020-01-02 04:25
 精彩回答 2  元偷偷看……
ssclark1988
4楼-- · 2020-01-02 06:55
zjlizy3344 发表于 2016-5-19 12:15
值不多就用查表法

测速用的,没法用表来查
ssclark1988
5楼-- · 2020-01-02 12:52
sddp001 发表于 2016-5-19 11:05
优化算法明显能改善的比如凑合整1024,512,256之类的,还有数据计算的过程量数据处理。。。 ...

除数是变量,这方法行不通吧
ssclark1988
6楼-- · 2020-01-02 16:55
OurWay 发表于 2016-5-19 21:53
M0516LDN  上有,   硬件除法器(HDIV) (只有M05xxDN/DE)  6.9
6.9.1    概述
硬件除法器  (HDIV)  用来提 ...

谢谢~~~~~

一周热门 更多>