打印
[应用相关]

悬赏调查:什么样的内嵌MCU的产品中需要使用浮点计算?

[复制链接]
9362|41
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
香水城|  楼主 | 2010-10-27 15:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 香水城 于 2010-10-28 17:46 编辑

记得以前有不少人问浮点计算的问题,我很好奇,什么样的应用需要用到浮点运算?要求的性能是多少?希望大家提点意见,谢谢。

前10个有实际价值的回答将各得10分,:lol

4周(11月24日)之后将结帖散分,:handshake
沙发
yewuyi| | 2010-10-27 16:02 | 只看该作者
在做PID控制的时候,如果使用浮点计算可以简化代码,当然这通过整数运算曲线救国也是可以实现的,但肯定不如用浮点来的直观。

使用特权

评论回复
板凳
yewuyi| | 2010-10-27 16:05 | 只看该作者
2:
在8位MCU上最长的数据类型就是LONG,这个可表达的数据位4个字节长度,当实际运算中计算值超过4个字节时,要么是自构变量,要么采用浮点获得更大的数据范围。

没有多少东西是必然的,麻烦点用整数多数都能曲线实现。

使用特权

评论回复
地板
香水城|  楼主 | 2010-10-27 16:09 | 只看该作者
那么用整数运算的曲线实现,在速度上是不是会比用浮点运算快呢,可能代码量也比较小吧?

如果速度又快,代码量也小,除了麻烦点之外,岂不是说整数运算更有优势?

使用特权

评论回复
5
yewuyi| | 2010-10-27 16:13 | 只看该作者
能支持浮点运算的芯片,一般都会有内部的乘除法器,这对于那些有较大运算量的应用来说,即使用不上浮点,也可以大大提高任务运行的速度,能减少长周期任务的切分,降低任务调度的难度。

对于一般工业控制是用不上的,一般的运算强度用整数顶一顶就拉倒了。

使用特权

评论回复
6
yewuyi| | 2010-10-27 16:17 | 只看该作者
那么用整数运算的曲线实现,在速度上是不是会比用浮点运算快呢,可能代码量也比较小吧?

如果速度又快,代码量也小,除了麻烦点之外,岂不是说整数运算更有优势? ...
香水城 发表于 2010-10-27 16:09


代码量不一定小,多数是代码量反而要多一点。

至于速度,对于确定精度的运算来说,用整数运算的速度应该比浮点要快,但一些应用中,各个公式计算的精度可能是不一样的,此时速度无法比较,但用浮点更容易统一量纲,代码比较简洁易懂。

使用特权

评论回复
7
香水城|  楼主 | 2010-10-27 16:26 | 只看该作者
谢谢你具有纲领性的解释,俺也慢慢长大了,:lol

使用特权

评论回复
8
yewuyi| | 2010-10-27 16:31 | 只看该作者
谢谢你具有纲领性的解释,俺也慢慢长大了,:lol
香水城 发表于 2010-10-27 16:26


晕倒,:) , 你才是高人,俺们只是民工,香水的功力非同小可,俺们自叹不如。。。

使用特权

评论回复
9
宇宙飞船| | 2010-10-27 16:46 | 只看该作者
用浮点是因为可以方便表达高精度的数据,并且硬件上能实现。
计算器需要用到浮点。高精度的DSP算法用到浮点。
一般的MCU应用,在要求实时处理的高速算法中,都是用定点表示。
没有浮点指令的DSP处理器中作FFT变换,无一例外地使用定点表示。
现在流行使用C语言,浮点运算对于电工们是很遥远的事。

使用特权

评论回复
10
yewuyi| | 2010-10-27 16:50 | 只看该作者
用浮点是因为可以方便表达高精度的数据,并且硬件上能实现。
计算器需要用到浮点。高精度的DSP算法用到浮点。
一般的MCU应用,在要求实时处理的高速算法中,都是用定点表示。
没有浮点指令的DSP处理器中作FFT变换, ...
宇宙飞船 发表于 2010-10-27 16:46


呵呵,C语言对浮点也是支持的,主要是要考虑芯片对浮点的支持是否合理,否则用浮点反而得不偿失。

使用特权

评论回复
11
wangzk| | 2010-10-27 17:38 | 只看该作者
具小弟我所知,实验仪器大都需要浮点计算
我接了个项目要做浮点计算很繁杂 啊  惭愧的是我没做出来
那个玩意要求精确到小数点后9位有效数字  还要四舍五入  
还有浮点之间的乘除  加减  
菜鸟的我只好放弃
真不敢想   那阵子头发掉的很厉害

使用特权

评论回复
12
jgphu| | 2010-10-27 18:33 | 只看该作者
浮点运算,一般的控制,通信场所是用不到的,意思是能用普通单片机的,一般是不需要进行浮点运算的。
而一些高端的,32位以上的,一般处理浮点数据还是比较多的。
例如:音视频数据,这些数据从模拟到数字,本身因为采样的因素会有数据损失,影响音视频的质量,这个时候就需要一些复杂的算法去还原。其中就要运用到浮点运算,而且运算速度还要比较快。

使用特权

评论回复
13
wangzk| | 2010-10-27 19:30 | 只看该作者
浮点运算,一般的控制,通信场所是用不到的,意思是能用普通单片机的,一般是不需要进行浮点运算的。jgphu 发表于 2010-10-27 18:33
如果一般的控制,含有复杂浮点运算 为节省成本,需要用普通51呢

使用特权

评论回复
14
波波来了哦| | 2010-10-27 20:34 | 只看该作者
AD采样就需要浮点运算,至于性能就要看精度了

使用特权

评论回复
15
hitro| | 2010-10-27 21:00 | 只看该作者
经纬度的计算也需要用到浮点

使用特权

评论回复
16
gaobq| | 2010-10-27 21:13 | 只看该作者
我用过的MCU所谓浮点运算,都可以用整数来处理,只不过对于运算速度没有要求的情况下,使用浮点数很方便,符合生活实际,描述起来方便,同其它程序接口也容易些,否则,所有的地方都要自己处理一下,麻烦。

使用特权

评论回复
17
mcu520| | 2010-10-28 01:04 | 只看该作者
对三角函数,应用到三维运算的时候,需要用到,由于三角函数调用了函数库里面的,所以占用了较多的资源。

使用特权

评论回复
18
eydj2008| | 2010-10-28 08:10 | 只看该作者
有了浮点运算,就再也不用插值和取表算法了,
现在的器件,你看在实际当中哪一个是线性的,
温度和电压的关系,步进电机电流和角度的关系,速度和时间的关系,FFT数字滤波,PID运算等等
为了处理非线性和非连续性,多维矢量控制里面,用DSP浮点运算 恰到好处。
只是现在DSP太贵,一般都要100RMB,所以不在高端的场和,还是用低中端普通MCU
采用插值和取表算法,另则采用Taylor公式粗略近似算法,取而代之。
呵呵 直接运算生成你想要的数据,精度就可以做得高些,速度可以快些。

使用特权

评论回复
19
eydj2008| | 2010-10-28 08:12 | 只看该作者
香主 问这个问题,一定是没多少实际经验,经常纸上谈兵的 结果  呵呵

使用特权

评论回复
20
mcuisp| | 2010-10-28 08:23 | 只看该作者
eydj2008是何方高手?

使用特权

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

本版积分规则

认证:意法半导体(中国)投资有限公司
简介:STM32技术专家

596

主题

17108

帖子

288

粉丝