Witam
Po kilkugodzinnym programowaniu połączonym ze studiowaniem dokumentacji atmegi w końcu udało mi się wybudzić ją z trybu uśpienia. Zaraz po tym napisałem program, który ma za pomocą jednego przycisku podpiętego do INT2 usypia i budzi procka. Przycisk łączy pin INT2 z masą a między pinem INT2 a masą znajduje się kondensator 100nF w celu eliminacji drgań styków.
Usypianie działa, wybudzić się nie chce. Jeśli w przerwaniu zostawię samo sleep_disable(); procek się budzi. Wygląda to tak, jakby zmienna power cały czas miała wartość 1. Specjalnie pozbyłem się całej reszty kodu i odłączyłem od procka wszystko poza elementami potrzebnymi do funkcjonowania procka i przyciskiem do obsługi przerwania, żeby wyeliminować możliwe powody. Analizowałem kod sporo czasu i nie mam pojęcia skąd bierze się taka reakcja procka.
Byłbym bardzo wdzięczny za wszelkie wskazówki, z góry dzięki za pomoc.
BTW, w dokumentacji wykres wskazuje, że w tym trybie procek powinien pobierać ok 13uA. Mi pobiera ok 2,2mA. To kwestia tego, że muszę wyłączyć ręcznie jakieś układy, czy coś jest nie tak?
Po kilkugodzinnym programowaniu połączonym ze studiowaniem dokumentacji atmegi w końcu udało mi się wybudzić ją z trybu uśpienia. Zaraz po tym napisałem program, który ma za pomocą jednego przycisku podpiętego do INT2 usypia i budzi procka. Przycisk łączy pin INT2 z masą a między pinem INT2 a masą znajduje się kondensator 100nF w celu eliminacji drgań styków.
Kod: C / C++
Usypianie działa, wybudzić się nie chce. Jeśli w przerwaniu zostawię samo sleep_disable(); procek się budzi. Wygląda to tak, jakby zmienna power cały czas miała wartość 1. Specjalnie pozbyłem się całej reszty kodu i odłączyłem od procka wszystko poza elementami potrzebnymi do funkcjonowania procka i przyciskiem do obsługi przerwania, żeby wyeliminować możliwe powody. Analizowałem kod sporo czasu i nie mam pojęcia skąd bierze się taka reakcja procka.
Byłbym bardzo wdzięczny za wszelkie wskazówki, z góry dzięki za pomoc.
BTW, w dokumentacji wykres wskazuje, że w tym trybie procek powinien pobierać ok 13uA. Mi pobiera ok 2,2mA. To kwestia tego, że muszę wyłączyć ręcznie jakieś układy, czy coś jest nie tak?