Как использовать сторожевой таймер микроконтроллера ATmega328p

Иногда возникает необходимость прервать выполнение программы, выполняемой микроконтроллером, и например сбросить его. Предположим, что микроконтроллер отправляет данные на сервер, а сервер по каким-то причинам не отвечает, или какая-то подобная нештатная ситуация происходит.

На помощь приходит сторожевой таймер Arduino, который позволяет задать тайм-аут для выполнения операции (от 16 мс до 8 секунд), а затем может быть вызван вектор прерывания, и микроконтроллер может быть перезагружен (системный сброс).

Подробнее об использовании сторожевого таймера Arduino рассказывается в статье Watchdog Timer Arduino. Прерывание и сброс.