Pokud je tento časovač povolen je nutné ho v běhu programu po určité době resetovat (příkazem v programu). Jestliže se program "zakousne" nebude tudíž příkazem v programu resetován a dojde k aktivaci resetovací sekvence CPU. Tato funkce je v podstatě "hlídač" který zajistí, že se zařízení v případě zakousnutí běhu programu zresetuje a tím dojde k opětovnému bezchybnému spuštění obvodu...
ATmega 8/168/328 atd.. má Watchdog Timer (WDT). WDT je časovač řízený samostatným interním oscilátorem s taktem 128 kHz. WDT vyvolá přerušení nebo reset když čítač dosáhne časového limitu.
Použití WDT v naší aplikaci s ARDUINEM
Prahová hodnota časovače |
Konstanta | Podporováno v CPU |
15 ms | WDTO_15MS | ATmega 8, 168, 328, 1280, 2560 |
30 ms | WDTO_30MS | ATmega 8, 168, 328, 1280, 2560 |
60 ms | WDTO_60MS | ATmega 8, 168, 328, 1280, 2560 |
120 ms | WDTO_120MS | ATmega 8, 168, 328, 1280, 2560 |
250 ms | WDTO_250MS | ATmega 8, 168, 328, 1280, 2560 |
500 ms | WDTO_500MS | ATmega 8, 168, 328, 1280, 2560 |
1 s | WDTO_1S | ATmega 8, 168, 328, 1280, 2560 |
2 s | WDTO_2S | ATmega 8, 168, 328, 1280, 2560 |
4 s | WDTO_4S | ATmega 168, 328, 1280, 2560 |
8 s | WDTO_8S | ATmega 168, 328, 1280, 2560 |
Pozor! Resetovací příkaz wdt_reset(); musí být v programu zadán dříve, než dojde k přetečení časovače...
https://code.google.com/p/arduino/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary&groupby=&sort=&id=181
http://forum.freetronics.com/viewtopic.php?t=1151
(http://www.desert-home.com/2012/05/arduino-mega2560-wrapping-up-bootloader.html
funkční boot loader https://github.com/arduino/Arduino-stk500v2-bootloader/tree/master/goodHexFiles
)