Работа с eeprom, но не с нулевого адреса

Тема в разделе "ESP8266, ESP32", создана пользователем Vovka, 21 май 2024.

  1. Vovka

    Vovka Гик

    Хотел настройки, касающиеся WiFi хранить в начале EEPROM, а пользовательские следом за ними.
    Естественно WiFi настройки редко меняются, в отличие от пользовательских
    Пользуюсь библиотекой <EEPROM.h>
    Там обьявляем размер, с которым будем работать, но это с нулевого адреса, а как задать, например с 100?
    Ведь мне начальный кусок редко нужен.
    Перенос настроек в начало тоже не вариант: "хвост" динамический....
     
  2. KindMan

    KindMan Гуру

    А какая ESP? Настройки WiFi это имя и пароль? Они ведь и так хранятся в своей области, зачем их ещё раз куда-то класть?
     
  3. Vovka

    Vovka Гик

    ESP8266
    Там настройки для WiFi можно менять, и не только пароли...
     
  4. KindMan

    KindMan Гуру

    Я просто не понял, где проблема. Может кусок кода приведёте?
    Пользуйтесь spiffs, и в разных файлах храните динамические данные.
     
  5. Vovka

    Vovka Гик

    Вот этой записью я обьявляю, что буду использовать EEPROM размером 100 байт с нулевого адреса в EEPROM:
    Код (C++):
    EEPROM.begin(100);
    А я хочу обьявить, что буду использовать 100 байт, но с 300 адреса в EEPROM.
    Как сделать такое обьявление?
    Т.е. что-то типа такой функции
    Код (C++):
    EEPROM.begin( int pos, int size );
     
  6. KindMan

    KindMan Гуру

    А накой? В ЕСП нет конкретной адресации, как в АВР, и это просто эмуляция для совместимости. Если боитесь затереть до дыр, то, как я сказал выше, пишите в разные файлы.
     
  7. Vovka

    Vovka Гик

    В принципе согласен.
    Просто я стараюсь избегать держать массивы с данными, которые редко нужны.
    В общем сделаю так: в setup() делаю EEPROM.begin() с длиной на все настройки, а EEPROM.end() будет только перед перезагрузкой модуля
    И EEPROM.commit() буду делать когда нужно что-то сохранить - библиотека умная, сохраняет только измененные ячейки.