Michał
Guest
Thu Dec 13, 2007 2:52 pm
Witam wszystkich
Czy jest gdzieś jakiś spis ile taktów potrzebuje mikrokontroler AVR na
wykonanie pewnych działań matematycznych? Chodzi mi o kompilator avr-gcc i
działania typu:
liczba 32bit/8bit=?
double/float=?
Dodawanie liczb 32bitowych łatwo można podejrzeć w skompilowanym pliku, ale
dzielenie już takie przejrzyste nie jest. Mam dylemat, czy rzeźbić w
liczbach typu long, czy prościej wykorzystać liczby zmienno przecinkowe.
Pozdrawiam
Grzegorz Kurczyk
Guest
Thu Dec 13, 2007 3:00 pm
Użytkownik Michał napisał:
Quote:
Witam wszystkich
Czy jest gdzieś jakiś spis ile taktów potrzebuje mikrokontroler AVR na
wykonanie pewnych działań matematycznych? Chodzi mi o kompilator avr-gcc
i działania typu:
liczba 32bit/8bit=?
double/float=?
Dodawanie liczb 32bitowych łatwo można podejrzeć w skompilowanym pliku,
ale dzielenie już takie przejrzyste nie jest. Mam dylemat, czy rzeźbić w
liczbach typu long, czy prościej wykorzystać liczby zmienno przecinkowe.
Takiej tabelki raczej nie znajdziesz, bo ta sama operacja może trwać
trochę inny czas w zależności od wersji kompilatora. Dzielenie na
liczbach float będzie z pewnością sporo wolniejsze od dzielenia
całkowitego na longint.
Jeśli chcesz się dowiedzieć ile czasu zajmuje dana operacja (procedura)
to wrzuć program na symulator i sprawdź. Dokładne liczenie taktów zegara
dla algorytmu dzielenia trochę mija się z celem, bo czas wykonania
operacji będzie trochę zależał od wartości dzielnej i dzielnika.
Pozdrawiam
Grzegorz
J.F.
Guest
Thu Dec 13, 2007 7:05 pm
On Thu, 13 Dec 2007 14:52:30 +0100, Michał wrote:
Quote:
Witam wszystkich
Czy jest gdzieś jakiś spis ile taktów potrzebuje mikrokontroler AVR na
wykonanie pewnych działań matematycznych? Chodzi mi o kompilator avr-gcc i
działania typu:
liczba 32bit/8bit=?
double/float=?
Dodawanie liczb 32bitowych łatwo można podejrzeć w skompilowanym pliku, ale
dzielenie już takie przejrzyste nie jest.
Przejrzyste moze nie jest, ale trzeba tyle obiegow petli ile bitow
wykonac.
Quote:
Mam dylemat, czy rzeźbić w
liczbach typu long, czy prościej wykorzystać liczby zmienno przecinkowe.
Dzielenie na floatach IMHO bedzie szybsze.
Mniej bitow - matysa tylko 24 bity.
Za to dodawanie i odejmowanie jest kosztowne.
Glowna sprawa to na ile jestes w stanie przewidziec zakres liczb -
obliczenia na stalym przecinku to maly koszmar jesli chodzi o
pilnowanie zakresow, czesto wygodniej zmienny przecinek uzyc i nie
szacowac bledow.
J.