O, ktoś odpowiedział, nie zaglądałem tu już w lutym...
@piotr529, nie ma zmartwienia. Każdy kto się bawi AVR wie, że
[...kolega zadaje tu pytania czy bawi się w jakąś reklamę ? - wycięte - mirekk36 ]@HomoChemicus, dzięki za odpowiedź, właśnie używam powerdown, zresztą jest to pokazane w przykładowym kodzie:
"set_sleep_mode(SLEEP_MODE_PWR_SAVE); /* EDIT: could also use SLEEP_MODE_PWR_DOWN for lowest power consumption. */"
Ja używam takiej funkcji w Eclipse:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Włączam przerwania przed uśpieniem i wyłączam zaraz po, bo tylko tu ich używam, do wybudzenia.
Działa na attiny13a i atmedze328.
Jak będę miał czas to posprawdzam jak się zachowuje gdy nie wyłączę (cli), przypuszczam, że wdt może coś tam sobie dalej dłubać, a ja w przerwaniu zliczam cykle wdt by wydłużyć spanie do wielokrotności 8s.
Ciekawi mnie tylko czemu nie musiałem włączać przerwań w Arduino i od razu zadziałało, domyślam się, że włączane są przy okazji innych inicjalizacji, np. uart. Kiedyś sprawdzę.
Gdzieś przeczytałem, że powinno się właśnie tylko raz włączać przerwania i ich nie wyłączać. Ale od każdej reguły są pewnie wyjątki.
Niestety czasu na AVR i Arduino mam mało, czasami jak w czymś się zatnę to wracam po paru miesiącach do tematu i zaczynam od nowa - czasami takie świeże podejście nawet pomaga.
Jak ktoś może potwierdzić przypuszczenia to proszę.