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?
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?
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 ;-)
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.
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;)
Wow... Przeliczona różnica tych prądów daje przepływ 1 elektronu na 3 lata. :)
TP.
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 ;)
Masz zbyt korpuskularne podejscie do zycia;)
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.
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.