打印
[其他ST产品]

请问STM32有符号数的右移也和除法运算等效吗?

[复制链接]
1154|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
classroom|  楼主 | 2023-6-26 10:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟最近在用STM32F030C6T6芯片完成电机的SVPWM控制。现在发现算法中,运行速度很慢。打算将所有的除法运算改成移位运算。一般的,无符号数的右移几位和除以2的几次幂是等效的。但是,在STM32里面,有符号数的右移也和除法运算等效吗?

使用特权

评论回复
沙发
mcu5i51| | 2023-6-27 10:18 | 只看该作者
数学左右移会处理,和编译器有关

使用特权

评论回复
板凳
星辰大海不退缩| | 2023-6-30 13:11 | 只看该作者
楼主可以先测试一下,看看数值是否正确,一般情况下是对的

使用特权

评论回复
地板
小小蚂蚁举千斤| | 2023-6-30 14:49 | 只看该作者
楼主可以用算法将其等效换算

使用特权

评论回复
5
Undshing| | 2023-7-1 22:53 | 只看该作者
这个看编译器优化等级吧

使用特权

评论回复
6
一秒落纱| | 2023-8-20 22:39 | 只看该作者
其实你不移位运算也是可以的,不会很慢的

使用特权

评论回复
7
田舍郎| | 2023-8-20 23:05 | 只看该作者
是等效,这是c语言里的与用什么片子无关

使用特权

评论回复
8
远山寻你| | 2023-8-21 03:27 | 只看该作者
在某些情况下,有符号数的右移可以与除法运算等效,但并不总是等效。

使用特权

评论回复
9
淡漠安然| | 2023-8-21 05:01 | 只看该作者
如果都是正数的时候,是等效的,如果有负数,估计就不行了吧

使用特权

评论回复
10
别乱了阵脚| | 2023-8-21 07:11 | 只看该作者
你可以试试的啊,但是我觉得不能总是等效吧

使用特权

评论回复
11
冰春彩落下| | 2023-8-21 09:23 | 只看该作者
既然有符号,就没必要弄左移和右移的操作了吧,很容易出问题的啊

使用特权

评论回复
12
江河千里| | 2023-8-21 11:22 | 只看该作者
一般情况是在正数为前提是等效的

使用特权

评论回复
13
夜阑风雨| | 2023-8-21 13:01 | 只看该作者
这个慢估计是你逻辑问题,不是左移右移的问题吧

使用特权

评论回复
14
暖了夏天蓝了海| | 2023-8-21 13:32 | 只看该作者
其实等不等效啊,需要根据具体的需求和运算规则来确定是否可以将有符号数的右移和除法运算等效使用。

使用特权

评论回复
15
暖了夏天蓝了海| | 2023-8-21 13:42 | 只看该作者
其实等不等效啊,需要根据具体的需求和运算规则来确定是否可以将有符号数的右移和除法运算等效使用。

使用特权

评论回复
16
三生万物| | 2023-8-21 15:53 | 只看该作者
C6T6来处理SVPWM的话,是不是效率会很低啊?

使用特权

评论回复
17
光辉梦境| | 2023-8-21 18:02 | 只看该作者
你可以用个高性能的MCU实现这个功能啊,毕竟C6T6的性能很低了

使用特权

评论回复
18
Bowclad| | 2023-8-21 21:50 | 只看该作者
可以的,通过算法可以运行更快

使用特权

评论回复
19
Bowclad| | 2023-8-21 21:52 | 只看该作者
光辉梦境 发表于 2023-8-21 18:02
你可以用个高性能的MCU实现这个功能啊,毕竟C6T6的性能很低了

C6T6的性能并不低了,现在好多功能其实8位机就能解决。

使用特权

评论回复
20
Mowergy| | 2023-10-20 10:14 | 只看该作者
也可能是你逻辑问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

419

主题

2034

帖子

1

粉丝