Co pobiera mniej energii: odwolywanie sie do PINow AVR'a czy do pamieci RAM?

pytanie jest dosyc idiotyczne :), ale tak jakos ciekawy jestem:

co pobierze mniej pradu: ciagle sprawdzanie danego bitu PINu AVRa, czy ciagle sprawdzanie komorki pamieci RAM?

Reply to
Q
Loading thread data ...

Q snipped-for-privacy@gazeta.gov.pl> napisał(a):

Nie zaprzeczam ;)

Pobór prądu przez ATMega32=0.018735828499826538123695478 A

Pobór prądu przez ATMega32=0.018735828499826538123695477 A

Piotrek ;-)

Reply to
Piotrek Sz.

On Tue, 1 Feb 2005 14:47:20 +0000 (UTC), "Piotrek Sz." snipped-for-privacy@NOSPAM.gazeta.pl> wrote: [.....]

A jaki amperomierz pokazał Ci taki wynik? :-) I dlaczego kosztował 2% PKB Polski. :-)

Regards, /J.D.

Reply to
Jan Dubiec
Reply to
invalid unparseable

To jest ruski miernik, ma zle wskazania;P Ile ATMega32 ma tranzystorow? 100tys.? moze 200tys.? Zakladajac, ze przez kazdy z tranzystorow plynie podobny prad, to skad roznice na 26 miejscu po przecinku? IMHO powinny byc na 18mA/ilosc tranzystorow;)

Reply to
T.M.F.

Wow... Przeliczona różnica tych prądów daje przepływ 1 elektronu na 3 lata. :)

TP.

Reply to
Tomasz Piasecki

Q napisał(a):

Problem jest dosyć filozoficzny ;)

W przypadku kiedy pin będzie "typu pull-up" to w przypadku podania L na pin to popłynie jakiś dodatkowy prąd, pomijając ten przypadek można by rozważać co powoduje przełączanie większej ilości tranzystorów ;)

Reply to
Maksymilian Dutka

Masz zbyt korpuskularne podejscie do zycia;)

Reply to
T.M.F.

Pradu zuzyje pobierze mniej operacja, ktora zajmie krotszy czas.

Jezeli sprawdzasz stan pinu np. instrukcja SBIC robiac ewentualnie skok przez RJMP: sbic port, nrbitu ; 1/2(3) cykle rjmp wait ; 2 cykle

- taka operacja zajmuje lacznie 3 (sbic 1 + rjmp 2) lub 2 (sbic) cykle zegara. Sprawdzenie natomiast komorki pamieci RAM wymaga jej odczytania np. instrukcja lds, po czym moze trzeba jeszcze wyciagnac stamtad interesujacy nas bit i ewentualnie skoczyc: lds r16, komorka1 ; 2 cykle sbrc r16, nrbitu ; 1/2(3) cykle rjmp wait ; 2 cykle

- taka operacja zajmie wiecej czasu niz wczesniej przedstawione sprawdzanie bitu I/O.

Oczywiscie mozna sobie wyobrazic sprawdzanie bitu I/O w dowolny inny sposob (np. odczytanie instrukcja IN calego portu 8-bitowego, np. PINA; instrukcja ANDI ze stala maska i warunkowy skok BREQ -> czyli testowanie czy kilka interesujacych bitow jest zgaszonych) - zajmie to calkiem inny czas niz najprostszy odczyt z pamieci RAM ze skokiem warunkowym (pamiec RAM == rejestr np. r18, na stale przeznaczony na trzymanie jakiejs maski): tst r18 ; 1 cykl brne wait ; 1/2 cykle

- to zajmie razem 2 (gdy r18=0) lub 3 cykle (gdy r18!=0 i bedzie skok).

W praktyce nie przejmuj sie powyzszymi wywodami a program napisz tak, jak bedzie wygodniej. I tak wiecej pradu zezre cala reszta a nie to sprawdzanie jednego bitu. A jak chcesz oszczedzic prad to na ten bit I/O wykorzystaj wejscie przerwania zewnetrznego i usypiaj procesor zamiast ciagle go sprawdzac w pollingu.

Reply to
Adam Dybkowski

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.