2014-04-04 34 views
0

有没有人在ATMega(2560)系统上取代浮点操作?每天都会发生几种常见的情况。不同操作的ATMega性能

例如:

  • 是比较比司/乘法快?

  • 浮动到int类型转换跟随乘/除快速比纯浮点运算没有类型转换?

我希望我不必为我做一个基准。

实施例之一:

int iPartialRes = (int)fArg1 * (int)fArg2; 
iPartialRes *= iFoo; 

更快?:

float fPartialRes = fArg1 * fArg2; 
fPartialRes *= iFoo; 

并且例如两个:

iSign = fVal < 0 ? -1 : 1; 

更快?:

iSign = fVal/fabs(fVal); 

回答

1

只要想一想,问题就可以解决。

  1. 的AVR没有FPU,因此所有浮点相关的东西是由软件完成 - > FP乘法涉及不是一个简单的乘法INT

  2. ,因为车牌自动辨认系统还没有一个整数除法更单位一个简单的分支也比软件部门快得多。如果除以浮点数,这是最坏的情况:)

但请注意,你的前2个例子会产生非常不同的结果。

+0

我知道输出是不同的。我只是不知道类型转换对性能的影响。 – dgrat