watchdog avr-gcc

Dec 05, 2006 3 Replies

Witam.



Jak dzia³a funkcja wdt_enable? Czy aktywuje tylko przerwanie od przepe³nienia, czy te¿ aktywuje automatyczny reset mikrokontrolera? Czy w funkcji przerwania od przepe³nienia samemu muszê wykonaæ skok do wektora resetu?



Dziêkujê za pomoc i pozdrawiam Pawe³



Użytkownik Pawel napisał:

Watchdog wykonuje sprzętowy reset procesora i nie trzeba go obsługiwać. Gdyby była konieczność programowej obsługi reakcji na watchdog'a to nie miałby on sensu. W większości AVR-ów można natomiast rozpoznać z jakiego powodu nastąpił reset procesora.

Pozdrawiam Grzegorz

Grzegorz Kurczyk napisał(a):

A nie jestem pewny na 100% ale chyba jest tez mozliwosc ustawienia takiego, by przepelnienie watchdoga generowalo przerwanie a nie reset. Przynajmniej kiedys cos takiego w attiny2313 widzialem.

Pawel napisał(a):

To makro konfiguruje watchdoga i włącza go. W rejestrze WDTCSR jest tylko programowany preskaler i ustawiany bit WDE. Nie jest natomiast ustawiany bit WDIE włączający przerwanie watchdoga (w ATtiny2313).

A wystarczyło tylko spojrzeć do pliku avr/wdt.h i nie zawracać...

Polecam lekturę opisu działania watchdoga w dokumentacji procesora (opis bitu WDIE). Jest tam dokładnie napisane, co należy zrobić po zadziałaniu przerwania watchdoga (ale nie w samym przerwaniu!) aby po kolejnym opóźnieniu nie nastąpił reset.

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required