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

2019-12-30 19:25发布

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

请教大家都是怎么做的?
坛里应该有很多人用 M0 来做电机控制的吧,那于这种除法是怎么来做的,或者怎么来避免?
谢谢~~~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
41条回答
三国小兵
1楼-- · 2019-12-31 20:38
标记下。。。。。。。。。。。。。。。。。。。
OurWay
2楼-- · 2019-12-31 22:32
M0516LDN  上有,   硬件除法器(HDIV) (只有M05xxDN/DE)  6.9
6.9.1    概述
硬件除法器  (HDIV)  用来提高应用程序的效率。硬件除法器是一个有符号,整数除法器,提供商和
余数输出。硬件除法器只有M05xxDN/DE才支持.

6.9.2    特性
    有符号 (2的补码) 整数计算
    32-bit 被除数,16位除数计算能力
    32-bit 商和 32-bit 余数输出 (16-bit 余数带符号扩展到32位)
    除0警告标志
    每次计算花6 个HCLK 时钟周期
    写除数触发计算
    当读商和余数的时候自动等待计算完成
nfchg
3楼-- · 2020-01-01 03:33
移位法最快,凑好放大倍数,最后整体移位
coleyao
4楼-- · 2020-01-01 05:18
 精彩回答 2  元偷偷看……
zwjiang8212
5楼-- · 2020-01-01 10:10
新唐的M051有硬件除法器(支持有符号32-bit 被除数和16-bit 除数)
guanxiaomin
6楼-- · 2020-01-01 14:50
zwjiang8212 发表于 2016-5-20 09:47
新唐的M051有硬件除法器(支持有符号32-bit 被除数和16-bit 除数)

新唐硬件除法器怎么用?有范例吗?
新唐051系列是比STM的M0运算要慢,当程序有大量的乘除法运算时,新唐的缺点就暴露了。
除法器没用过,望赐教!!!

一周热门 更多>