Нажатие кнопки сброса перезапускает программу всего через несколько секунд.
Мне интересно, почему после нажатия кнопки сброса на моем Arduino последняя загруженная программа запускается, но только примерно через 5 секунд. То же самое происходит, когда я запускаю Arduino с компьютера с помощью программного обеспечения Arduino 1.6.9.
Есть ли способ сократить эту задержку?
Спасибо, ЕСЛИ
@user35199, 👍0
Обсуждение2 ответа
Первое, что происходит, когда вы подаете питание на плату или нажимаете кнопку сброса, — запускается загрузчик. Требуется некоторое время, чтобы принять новый скетч через последовательный порт. Если ничего не поступает, он завершает работу и выполняет существующий скетч.
На Uno эта задержка составляет всего 2 секунды. Однако на Leonardo задержка намного больше (около 5-8 секунд) из-за того, как реализован последовательный порт: он должен дать главному компьютеру время для повторного определения USB-устройства после перезагрузки, а это занимает секунду. или два.
Если вы не хотите такой задержки, вам нужно будет удалить загрузчик (т. е. игнорировать его) и запрограммировать плату с помощью аппаратного программатора и контактов ICSP (что отключит загрузчик за вас). Однако вы теряете удобство программирования через USB-соединение.
В качестве альтернативы выберите другую плату, у которой нет такой задержки для загрузчика, — ту, которая использует другой метод программирования.
Столкнувшись с той же проблемой, я недавно обнаружил, что Leonardo/Micro сразу переходит к пользовательскому приложению при включении питания, либо путем вставки USB-кабеля, подключенного к зарядному устройству мобильного телефона, т.е. питания только через USB, либо путем подключения внешнего питание через вход питания RAW. Итак, если вам нужен быстрый перезапуск после сброса, просто отключите и снова подключите источник питания.
- Запуск программного сброса Arduino Leonardo
- Как я могу очистить память моего Arduino в этом случае?
- Как использовать SPI на Arduino?
- Сброс Arduino Uno в коде
- Как сбросить или отформатировать Arduino?
- Нажать клавишу Windows, используя «keyboard.press();»
- Как подключить вывод INT MPU 6050?
- Улучшенное циклическое переключение цветов RGB.
(1) Может ли «около 5 секунд» быть всего лишь секундой или двумя? То есть вы задержку мерили часами или просто прикинули навскидку? (2) Если это происходит только с одним эскизом, отредактируйте свой вопрос, включив в него [Минимальную, полную и проверяемую](http://stackoverflow.com/help/mcve) копию эскиза, чтобы мы могли идентифицировать программирование. ошибка, которая вызывает проблему. (3) Если это происходит с несколькими разными несвязанными эскизами, отредактируйте свой вопрос, включив в него их список., @James Waldby - jwpat7
Несколько секунд кажутся нормальными, и я не думаю, что вы сможете сократить это время. Если вы объясните, почему вы хотите, чтобы это было быстрее, кто-то может предложить гораздо более быструю альтернативу., @Code Gorilla
Загрузчик должен поработать несколько секунд, прежде чем запустится ваш скетч. Если вы этого не хотите, удалите загрузчик и используйте аппаратный программатор., @Majenko