Сторожевой таймер для Atmega 128

Я использую atmega 128 для интеллектуального отслеживания транспортных средств. Я пытаюсь использовать сторожевой таймер для этого контроллера. Но проблема в том, что я обнаружил, что максимальное время сброса сторожевого таймера составляет 2 секунды. Мне нужно время сброса сторожевого таймера 8 секунд. Что мне теперь делать?

, 👍0

Обсуждение

Запустите его 4 раза, чтобы получить 8 секунд., @Gerben

Есть ли другой способ?, @Iqbal Hossain

Извините. Я предположил, что вы использовали сторожевой таймер для пробуждения MCU после сна. Видимо, 128 даже не поддерживает это. Единственным вариантом было бы изменить ваш код, чтобы wdt_reset вызывался чаще, и убедиться, что нет задержек/ожиданий/тайм-аутов дольше 2 секунд. 2 секунды — это довольно долгое время для процессора. Что делает ваш код, что ему требуется больше 2 секунд?, @Gerben


1 ответ


1

На Atmega 128 увеличить время сторожевого таймера невозможно. Оно составляет максимум 1,8 секунды, если вы установите все 3 бита таймера прескалера.

Для Atmega 328 максимальное время сторожевого таймера составляет 8 секунд. Более длительное время можно добиться, используя прерывание сторожевого таймера и обратный отсчет (или нисходящий) до тех пор, пока не потребуется сброс, а затем принудительно выполнить сброс, установив самый короткий сторожевой таймер.

Atmega 128 не поддерживает сторожевое прерывание, поэтому трюк с прерыванием использовать нельзя.

,