-
21. Data: 2009-06-02 21:17:04
Temat: Re: Pomiar prądu - atmega8
Od: John Smith <d...@b...pl>
>>A może też taki drobny uśredniający filterek programowy.
>>Nie zaszkodzi przecież.
>>Dla przykładu, zajmujesz kawałek pamięci, zapisujesz ją w kółeczko, a
>>pomiar polega na policzeniu średniej z tegoż obszaru.
>>Jak ilość próbek będzie wielokrotnością 2ki to i średnią łatwo się liczy.
>>
>>
>
>
> No to zrobiłem też. Robie 10 pomiarów, dodaje do siebie i dziele przez 10.
> Ale jeżeli każdy wynik jest inny ze zwględu na zakłucenia to niewiele to
> daje.
To już lepiej brać 8 lub 16 próbek a dzielenie zastąpić przesunięciem wyniku
w prawo o 3 lub 4 bity.
K.
-
22. Data: 2009-06-02 21:21:54
Temat: Re: Pomiar prądu - atmega8
Od: Zbych <a...@o...pl>
ulyssess pisze:
>> Mógłby przydać się filtr medianowy. Zasada jest trywialna: dla każdej
>> nowej próbki sortujesz bufor i wybierasz środkowy element = wynik
>> filtrowania.
>
> Czyli po 10 pomiarach wyrzucam pierwszy, dodaje kolejny i znowu licze
> średnią? Czy to bedzie lepsze niz srednia z kolejnych 10?
Nie średnią, a środkową i nie liczysz tylko szukasz.
--
przeciez moje rozumowanie bylo bez skazy,
no sam bym wskoczyl do tego wulkanu,
ale kto by tak pieknie gwizdal...
-
23. Data: 2009-06-02 21:28:36
Temat: Re: Pomiar prądu - atmega8
Od: Zbych <a...@o...pl>
rpdrobny pisze:
> Dzięki temu średnią masz co kilkanaście ms liczoną z okresu od 1 do
> 256xkilkanaście ms (to może być nawet i 1 s).
Zamiast marnować tyle pamięci można zrobić prosty filtr IIR. Efekt
będzie podobny.
--
przeciez moje rozumowanie bylo bez skazy,
no sam bym wskoczyl do tego wulkanu,
ale kto by tak pieknie gwizdal...
-
24. Data: 2009-06-03 03:11:29
Temat: Re: Pomiar prądu - atmega8
Od: "ulyssess" <u...@o...pl>
>
> To już lepiej brać 8 lub 16 próbek a dzielenie zastąpić przesunięciem
> wyniku
> w prawo o 3 lub 4 bity.
> K.
>
A jaka to różnica w działaniu filtra?
--
Pozdrawiam Piotrek
www.tajemnicesw.cba.pl
-
25. Data: 2009-06-03 07:37:13
Temat: Re: Pomiar prądu - atmega8
Od: BartekK <s...@N...org>
ulyssess pisze:
>> To już lepiej brać 8 lub 16 próbek a dzielenie zastąpić przesunięciem
>> wyniku
>> w prawo o 3 lub 4 bity.
>> K.
>>
>
> A jaka to różnica w działaniu filtra?
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
--
| Bartlomiej Kuzniewski
| s...@d...org GG:23319 tel +48 696455098 http://drut.org/
| http://www.allegro.pl/show_user_auctions.php?uid=338
173
-
26. Data: 2009-06-03 13:14:56
Temat: Re: Pomiar prądu - atmega8
Od: "ulyssess" <u...@o...pl>
> 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
>
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
--
Pozdrawiam Piotrek
www.tajemnicesw.cba.pl
-
27. Data: 2009-06-03 14:10:14
Temat: Re: Pomiar prądu - atmega8
Od: BartekK <s...@N...org>
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
>>
>
> 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
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"
--
| Bartlomiej Kuzniewski
| s...@d...org GG:23319 tel +48 696455098 http://drut.org/
| http://www.allegro.pl/show_user_auctions.php?uid=338
173
-
28. Data: 2009-06-03 17:14:06
Temat: Re: Pomiar prądu - atmega8
Od: Sławomir Szczyrba <c...@o...the.night>
Może ulyssess trolluje, a może i nie... Ale pisze :
>
> No fajnie tylko trzeba jeszcze pisać w asemblerze, czego nie robie, a avr z
>
Uwierz w kompilator.
On naprawdę nie jest zupełnie głupi :)
(no i jest jeszcze operator >> ;)
Sławek
--
________
_/ __/ __/ 17. Fizyk do konca zycia nie ucieknie przed grupa obrotow.
\__ \__ \___________________________________________________
____________
/___/___/ Sławomir Szczyrba steev/AT/hot\dot\pl
-
29. Data: 2009-06-03 17:34:22
Temat: Re: Pomiar prądu - atmega8
Od: "ulyssess" <u...@o...pl>
>>
>> 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
> 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"
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.
--
Pozdrawiam Piotrek
www.tajemnicesw.cba.pl