Сторожевой таймер для Atmega 128
Я использую atmega 128 для интеллектуального отслеживания транспортных средств. Я пытаюсь использовать сторожевой таймер для этого контроллера. Но проблема в том, что я обнаружил, что максимальное время сброса сторожевого таймера составляет 2 секунды. Мне нужно время сброса сторожевого таймера 8 секунд. Что мне теперь делать?
@Iqbal Hossain, 👍0
Обсуждение1 ответ
На Atmega 128 увеличить время сторожевого таймера невозможно. Оно составляет максимум 1,8 секунды, если вы установите все 3 бита таймера прескалера.
Для Atmega 328 максимальное время сторожевого таймера составляет 8 секунд. Более длительное время можно добиться, используя прерывание сторожевого таймера и обратный отсчет (или нисходящий) до тех пор, пока не потребуется сброс, а затем принудительно выполнить сброс, установив самый короткий сторожевой таймер.
Atmega 128 не поддерживает сторожевое прерывание, поэтому трюк с прерыванием использовать нельзя.
- Установка timer3 в режиме CTC - конфликт с сервобиблиотекой
- Как измерить ультразвуковой датчик без импульсного метода?
- Проблема прерывания библиотеки MPU6050 Arduino Jeff Rowberg
- Arduino Mega TIMER1 интервал в одну секунду
- Таймеры, выводы ШИМ и цифровые выходы на Arduino Mega
- Точность синхронизации Arduino nano
- Мега: присоединение Interrupt на выводе 18/19/20/21 не работает
- Arduino Mega — включение режима CTC отключает таймер
Запустите его 4 раза, чтобы получить 8 секунд., @Gerben
Есть ли другой способ?, @Iqbal Hossain
Извините. Я предположил, что вы использовали сторожевой таймер для пробуждения MCU после сна. Видимо, 128 даже не поддерживает это. Единственным вариантом было бы изменить ваш код, чтобы wdt_reset вызывался чаще, и убедиться, что нет задержек/ожиданий/тайм-аутов дольше 2 секунд. 2 секунды — это довольно долгое время для процессора. Что делает ваш код, что ему требуется больше 2 секунд?, @Gerben