Arduino Nano — программатор не отвечает после загрузки WDT
Я перешел по ссылке примера для WDT. Код был скопирован как есть и успешно загружен в Nano.
Теперь, когда я хочу загрузить другой код, я получаю сообщение об ошибке: avrdude: stk500_recv(): программист не отвечает
.
Можно ли это отменить?
код:
#include <avr/wdt.h>
#define led 13 // контакт 13 подключен к светодиоду на Arduino Uno
void setup()
{
pinMode(led, OUTPUT); // устанавливаем режим вывода
digitalWrite(led, HIGH); // включаем светодиод (HIGH - уровень напряжения)
delay(100); // ждем десятую долю секунды
digitalWrite(led, LOW); // выключаем светодиод, понижая напряжение
delay(100); // ждем десятую долю секунды
}
void loop(){
wdt_enable(WDTO_15MS); // включаем сторожевой таймер
// сработает через 15 мс без сброса
while(1)
{
// wdt_reset(); // раскомментируем, чтобы избежать перезагрузки
}
}
@Guy . D, 👍0
Обсуждение2 ответа
Лучший ответ:
Одна из особенностей сторожевого таймера заключается в том, что после сброса сторожевого таймера он остается активным. Его необходимо специально отключить, а загрузчик (IIRC) обычно его не отключает.
Если тайм-аут слишком мал (меньше времени, необходимого для загрузки нового кода), сторожевой таймер сбросит чип во время загрузки.
Единственный способ отключить его — физически отключить питание чипа и убедиться, что загруженный скетч никогда не запускается.
- Выберите плату/порт и т. д., готовые к загрузке.
- Отключите плату
- Удерживайте кнопку сброса
- Подключите плату.
- Нажмите кнопку загрузки в IDE.
6 Как только
avrdude
будет запущен (это программа, которая выполняет фактическую загрузку) - как только компиляция завершится, отпустите кнопку сброса.
Если вы все сделали правильно, вы сможете правильно загрузить файл. Если нет, вам придется повторить попытку, начиная с шага 1.
Если программа WDT работает, когда вы пытаетесь загрузить новую, возможно, она блокирует загрузчик. Попробуйте удерживать кнопку сброса, пока нажимаете кнопку загрузки IDE, и отпустите кнопку сброса, как только увидите запуск avrdude. Чтобы добиться правильного танца на пуговицах, может потребоваться несколько попыток.
Обновление:
Что такое avrdude?
Это программа на вашем компьютере, которая загружает скомпилированный образ в Arduino. Вы увидите его работающим в нижней панели Arduino IDE.
что такое «аврдуде»?, @Guy . D
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Есть ли способ загрузить предварительно скомпилированный код в Arduino?
- Arduino nano ATmega328p с CH341 не загружается
- Arduino Nano (клон) не распознается
- Можно ли обновить загрузчик Arduino (Nano) через себя и Arduino IDE или требуется ISP?
- Ошибка обновления Arduino Nano — avrdude: stk500_recv(): programmer is not responding
- Не удается загружать скетчи в Arduino Nano Every
- Загрузить уже скомпилированный код в Linux CLI без arduino-cli
измените загрузчик в Nano на новый, в котором нет этой проблемы. и вам следует включить wdt в настройке и сбросить его в цикле., @Juraj