cli sei nie powinno sie używać w programie , oprócz tego zeby aby raz włączyc przerwanie na poczatku programu i tyle ,
należy używać
ATOMIC_BLOCK czyli sekcji krytycznych w avr
w twoim przypadku moze sie przydać
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
ATOMIC_RESTORESTATE - powodującą zapamiętanie przed wejściem do sekcji krytycznej globalnej flagi zezwolenia na przerwania, w srodku bloku nastepuje zablokowanie przerwań, następnie wykonuje się kodu i na koniec przywrócenie stanu flagi zezwolenia na przerwanie.
rzadko jaka ksiazka opisuje ta funkcjonalność , mozesz poczytac o nich w
dokumentacji
http://www.nongnu.org/avr-libc/user-man ... tomic.html