Как отличить аппаратный сброс от сброса программного обеспечения?
У меня есть код arduino с SD-картой, на которой я сохраняю некоторые данные. Когда я загружаю новый код, SD-карта должна обновляться с новыми данными, которые я ввел в код, но если я сброшу Arduino с помощью кнопки сброса, я не хочу, чтобы данные SD менялись.
Подводя итог, я хочу перезагрузить данные SD только при обновлении кода, а не при сбросе оборудования
Есть какие-нибудь идеи?
1 ответ
Лучший ответ:
Ты не можешь. Нет никакого "программного" сброса. Когда вы загружаете новый код, аппаратный сброс запускается выводом DTR микросхемы интерфейса USB.
Вместо этого я бы предложил сохранить "номер версии данных" на SD-карте. Прочитайте его при запуске, и, если он отличается от ожидаемого номера версии (который вы обновляете в своем коде вручную), он создаст данные для вас и установит номер версии.
Ну, я об этом не думал, звучит как хорошее решение. Спасибо!, @Alexandro Palacios
- Режимы открытия файлов на SD-карте Arduino добавление/перезапись
- Сохранение файла .txt на SD-карту и чтение данных каждого содержимого в файл txt, а затем сохранение его в переменной
- Использование SD-адаптера 5 В в системе 3,3 В
- Проблема с открытием нескольких текстовых файлов одновременно/по порядку с использованием <SD.h>
- DFPlayer для записи на SD-карту
- STM32 и SdFat - Не удается создать файл в каталоге на SD-карте
- Как **получить** атрибуты для файлов SD?
- Попытка прочитать случайную строку с SD-карты
Какой у вас Arduino?, @Majenko
Я пытаюсь использовать Arduino Uno, но код должен работать и для Nano, и для Mega, @Alexandro Palacios
Тогда мне очень жаль, но ты не можешь. Там *нет* никакого "сброса программного обеспечения". Загрузка кода запускает аппаратный сброс путем "нажатия" на сброс для вас., @Majenko
Ах, значит, между обоими сбросами нет реальной разницы, @Alexandro Palacios