Pomiar prądu - atmega8

To już lepiej brać 8 lub 16 próbek a dzielenie zastąpić przesunięciem wyniku w prawo o 3 lub 4 bity. K.

Reply to
John Smith
Loading thread data ...

ulyssess pisze:

Nie średnią, a środkową i nie liczysz tylko szukasz.

Reply to
Zbych

rpdrobny pisze:

Zamiast marnować tyle pamięci można zrobić prosty filtr IIR. Efekt będzie podobny.

Reply to
Zbych

A jaka to różnica w działaniu filtra?

Reply to
ulyssess

ulyssess pisze:

Filtra - niewielka. Programu - ogromna. Przesunięcie w prawo to jedna bitowa operacja asemblera, jeden cykl procesora. A dzielenie przez 10 jest operacją matematyczną wykonywaną programowo, zwłaszcza na avr który nie ma sprzętowego dzielenia

Reply to
BartekK

No fajnie tylko trzeba jeszcze pisać w asemblerze, czego nie robie, a avr z dzieleniem programowym radzi sobie dość dobrze. Program gotowy na pomiar napiecia i pradu z filtrem programowym(niewielkim) zajął mi 3k kodu. Zatem miejsca mam jeszcze oporowo

Reply to
ulyssess

ulyssess pisze:

Jest coś takiego jak kultura programowania, nawet jeśli ty nie widzisz różnicy, to nie znaczy że w kodzie (po skompilowaniu) nie ma. Skoro dzielenie przez potęgę dwójki kompilator może zamienić na jeden rozkaz asemblera (kodu maszynowego) a do twojego dzielenia musi wrzucać skomplikowaną procedurę, to różnica musi być. Choćby w prędkości działania programu - nawet jak ci nie zależy na niej zbytnio, ani nie wyciskasz ostatnich us z czasu procesora, to lepiej program pisać tak by był maksymalnie wydajny i "płynny" (a nie stawał w bliżej nieokreślonych miejscach na jakimś dzikim obliczeniu programowym na zmiennej wielobajtowej na kilkanaście/dziesiąt ms), a potrzebne opóźnienia "waity" były robione programowo w tych miejscach i w takiej wielkości jaką zaprojektujesz, a nie "jak wyjdzie"

Reply to
BartekK

Może ulyssess trolluje, a może i nie... Ale pisze :

Uwierz w kompilator. On naprawdę nie jest zupełnie głupi :) (no i jest jeszcze operator >> ;)

Sławek

Reply to
Sławomir Szczyrba

Ja rozumie że jesli bym pisał oprogramowanie z bardzo długim kodem to może i miałoby to znaczenie i pewnie wtedy bym sie nad tym pomęczył trochę. Przy tym projekcie robię tak a nie inaczej z innych wzgledów, a po drugie nie dam sie kolejny raz wciagnąć w dyskusje na temat wyzszości tego języka programowania nad innym.

Reply to
ulyssess

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.