huangguimina4 发表于 2017-4-18 08:55:38

CVAVR上直接浮点计算比转整换算快?

编译器采用CVAVR,mega328P单片机,计算18B20温度转换.
采用简单的IO翻转输出
这个是使用转整计算

计算耗时输出

/---------------------------------------------------------------------
第二个是直接浮点

计算耗时输出

很明显耗时比较小,这样的话以前的那些转整计算不是没啥意思么?我错在哪了?

ersha4877 发表于 2017-4-18 11:07:23

编译后是不是用了专用的库了

ersha4877 发表于 2017-4-18 11:07:41

编译后是不是用了专用的库了

huangguimina4 发表于 2017-4-18 11:43:25

ersha4877 发表于 2017-4-18 11:07
编译后是不是用了专用的库了

怎么看用不用专用库?

ersha4877 发表于 2017-4-18 11:45:27

huangguimina4 发表于 2017-4-18 11:43
怎么看用不用专用库?

不懂只是猜测好像CVAVR自己有很多的库文件的所以有这么一说

qinxg 发表于 2017-4-18 15:23:03

浮点本质上也是整数运算, 只是前后添加了对阶移位.两次整数运算(特别是除法)有可能比一次浮点运算慢

huangguimina4 发表于 2017-4-18 16:36:30

qinxg 发表于 2017-4-18 15:23
浮点本质上也是整数运算, 只是前后添加了对阶移位.两次整数运算(特别是除法)有可能比一次浮点运算慢 ...

看来,有时候也是不必转整了{:lol:}

hdxet 发表于 2017-4-20 11:24:33

除法耗时比较长

modbus 发表于 2017-4-20 12:36:56

在没有硬件除法的情况下,浮点乘法要比整数除法快的多

wurst 发表于 2017-4-20 12:52:06

应该是编译器优化,625是个特殊数值。看看汇编就知道啦

szxszx 发表于 2017-4-20 13:44:24

temp*0.625 = temp*10/16
页: [1]
查看完整版本: CVAVR上直接浮点计算比转整换算快?