Как перезагрузить Arduino (программный рестарт)
После нажатия на кнопку RESET, а также по сигналу DTR микросхемы FT232R на плате Arduino Duemilanove или по сигналу на выводе D7 микросхемы ATmega8U2 платы Arduino Uno, управление передаётся загрузчику (bootloader) Arduino, расположенному в верхних 2 КБ памяти программ (Flash) (адрес 0x7800
для микроконтроллера ATmega328p).
Загрузчик проверяет, есть ли связь с Arduino IDE, а затем передаёт управление по адресу 0x0000
памяти программ, где расположен код скетча.
Таким образом, чтобы перезагрузить Arduino программным способом (теплый рестарт или soft reset), достаточно добавить в скетч функцию программного сброса:
void softReset()
{
asm volatile ("jmp 0");
}
Вызов этой функции приведёт к программному рестарту скетча Arduino.
- Базовый заголовок (#include)
- Arduino как терминал
- Как увидеть PWM
- Почему-то программа перестала работать
- Дребезг контактов
- Какой потенциометр выбрать
- Спящий режим Arduino
- Как уменьшить размер скетча
- Как использовать сторожевой таймер микроконтроллера ATmega328p
- Экономия энергопотребления Arduino
- Таинственный таймер-счётчик 2 Arduino Leonardo
- Arduino и микроконтроллер ATmega8
- Как перезагрузить Arduino (программный рестарт)
- Как перезагрузить Arduino (холодный рестарт)