2014-04-04 38 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