[AVR-GCC] sleep_mode_set

Jun 25, 2004 5 Replies

Witam (to znowu ja ;) napisa³em sobie prosty program testowy który zaraz po starcie uC mia³by go wprowadzaæ w stan oczekiwania a wyprowadziæ mia³ by go z niego wysoki czy tam niski stan na INT0 lub INT1, ale jako¶ mi to nie dzia³a uC co prawda wchodzi w stan oczekiwania (objawia siê to zmniejszonym poborem pr±du) ale co¶ nie mogê do z niego wyprowadziæ (podawa³em przez rezystor 5V i te¿ zwiera³em nó¿ki do masy (INT1 i INT0) ale nic siê nie dzieje). Tak¿e co¶ musia³em nie dopisaæ w programie. Mam te¿ dodatkowe pytania czy po wyprowadzeniu uC z stanu oczekiwania startuje on od pocz±tku programu, czy te¿ od momentu, w którym wszed³ w stan oczekiwania ?



SIGNAL(SIG_INTERRUPT0) { } SIGNAL(SIG_INTERRUPT1) { }



void waitForRing(void) { sei(); set_sleep_mode(SLEEP_MODE_STANDBY); sleep_mode();



diode(5); }



int main(void) { dide(2); // dioda mruga 2 razy waitForRing(void) while(1); return(0); }



W artykule <cbh956$7m2$ snipped-for-privacy@nemesis.news.tpi.pl> BT napisal(a):

No, na moje oko brakuje zezwolenia na przerwanie zewnętrzne (jakieś maski trza ustawić itp.).

RTFM ;-)

If an enabled interrupt occurs while the MCU is in a sleep mode, the MCU wakes up. The MCU is then halted for four cycles in addition to the start-up time, it executes the interrupt routine, and resumes execution from the instruction following SLEEP. The contents of the Register File and SRAM are unaltered when the device wakes up from sleep. If a Reset occurs during sleep mode, the MCU wakes up and executes from the Reset Vector.

Pozdrawiam

Marcin Stanisz

Uhmm no obziuram czy to przypadkiem nie o to chodzi.

No ale ona jest taka nudna ;) wole sobie czasem o co¶ zapytaæ.

A to sie zaskoczy³em. Bo to trochê bez sensu ¿e wykonuje siê od tego samego miejsca jak i tak nic w ramie nie ma ;) bo RAM chyba siê czy¶ci jak siê go w taki tryb wprowadzi.

Dnia pią 25. czerwca 2004 18:18 BT napisał(a):

No, tylko ręce załamać :-) Kawałek dalej (czy bliżej, bo nie pamiętam) napisali, że rejestry i RAM zostają się podczas snu bez zmian.

Pozdrawiam

HeH ;-) masz racje za szybko czyta³em i unaltered przeczyta³em jako unalerted ;-) i zrozumia³em to jako niepowiadomione zamiast niezmienione. A w instrukcji wyczyta³em ¿e uC podczas snu pobiera parê uA a mój uk³ad pobiera 2mA ;( w normalnej pracy pobiera 16mA tak¿e co¶ mi tu nie pasuje. Zanim zacznê od³±czaæ podejrzane komponenty, które mog± pobieraæ ten pr±d wole zapytaæ czy rzeczywi¶cie sam uC powinien pobieraæ w tym stanie uA ? Czy ma znaczenie to ¿e np. do wyprowadzenia uC mam podpiêty jaki¶ rezystor który podci±ga jego wyj¶cie do zasilania (wydaje mi siê ¿e nie bo przed wej¶ciem w stan u¶pienia wszystkie wyprowadzenia ustawiam na wysok± impedancje).

PS z wyprowadzeniem ze stanu u¶pienia ju¿ sobie poradzi³em, mia³e¶ racje z tymi przerwaniami. Dziêki za pomoc.

Dnia sob 26. czerwca 2004 10:27 BT napisał(a):

Nie sprawdzałem trybów uśpienia - nie miałem takiej potrzeby. ZTCW to te uA są po wyłączeniu przetwornika A/C, napięcia odniesienia i innych takich.

Nie powinno mieć znaczenia. Hi-Z to załatwi.

Pozdrawiam znad kuwety do trawienia płytek... Pani się dziwnie w sklepie patrzyła, kiedy prosiłem o zmywacz do paznokci, ale ją uspokoiłem, że tylko u nóg maluję ;-))

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required