Watchdog dla nowego Arduino Uno R4

O watchdogu dla Arduino napisałem dwuczęściowy artykuł. Stosując jednak nową wersję komputerka, nie możemy już użyć biblioteki napisanej dla rodziny mikrokontrolerów AVR. Na szczęście wraz z obsługą nowej płytki pojawiają się także przykłady, między którymi znajdziemy informację na temat tej pożytecznej funkcji w nowej odsłonie.
Przede wszystkim będziemy musieli teraz użyć biblioteki WDT.h którą znajdziemy w systemie, jeśli ten będzie obsługiwał nowe Uno. W sekcji setup należy zadeklarować maksymalny czas, po którym nieodświeżany timer watchdoga zresetuje kontroler. Czas ten niestety nie może być dłuższy od 5592 ms i tutaj tkwi różnica wobec wersji AVR, oferujących do ośmiu sekund czasu. W końcu w pętli loop, w wybranych miejscach należy resetować licznik watchdoga, jak to się zwykle robi.
#include <WDT.h> // Biblioteka obsługi watchdoga.
void setup() {
WDT.begin(1000); // Czas odświeżania licznika watchdoga, nie dłuższy od 5592 ms
}
void loop() {
WDT.refresh(); // Resetuj timer watchdoga.
}
Istnieje możliwość przedłużenia limitu niecałych sześciu sekund przy pomocy dodatkowego timera, ale o tym napiszę przy okazji omawiania większego projektu.