Страница 3 из 4

Запись/чтение массива и строк в/из EEPROM

Добавлено: 29.10.2021{, 17:48}
AlexCrane
Набор простых блоков для записи/чтения массива и строк в/из EEPROM

1. Блок Запись массива в EEPROM
Параметры:
  • Адрес для записи - адрес куда сохраняем
  • Массив - массив для записи
Входы:
  • Запись - По переднему фронту сохраняем массив в EEPROM, использовать через RTrig
  • Адрес - Адрес по которому сохраняем
Выходы:
  • Адрес для следующего - адрес для следующего блока для записи
2. Блок Чтение массива из EEPROM
Параметры:
  • Адрес для чтения - адрес откуда читаем
  • Массив - массив в который читаем
Входы:
  • Читать - По переднему фронту читаем массив из EEPROM, использовать через RTrig
3. Блок Запись массива String в EEPROM - Все аналогично блоку Запись массива в EEPROM

4. Блок Чтение массива String из EEPROM - Все аналогично блоку Чтение массива из EEPROM

5. Блок Запись строки в EEPROM

6. Блок Чтение строки из EEPROM

5. Очистка EEPROM

ВНИМАНИЕ! Любой блок автоматически добавляет функции для чтения и записи строк в/из EEPROM. Если они не используются в проекте, то их можно отключить в параметрах.

Сами блоки:
Критическое обновление Блоки в проекте (в примерах используются блоки ранних версий!!!):
Запись и чтение String с EEPROM_NEW.zip
(294.12 КБ) 273 скачивания

Запись/чтение массива и строк в/из EEPROM

Добавлено: 02.01.2022{, 22:12}
OldRoman
Все ОК. Вывод нормальный,индекс,содержимое.

Запись/чтение массива и строк в/из EEPROM

Добавлено: 03.01.2022{, 09:45}
AlexCrane
Добавил в шапку исправленную версию блоков (исправлена запись массивов в ESP)

Запись/чтение массива и строк в/из EEPROM

Добавлено: 30.01.2022{, 04:49}
Di123
неполучается
в параметрах в обоих блоках выбираю 0
2022-01-30_083620.png
через внешний адрес
2022-01-30_084201.png
да и в параметрах галочки в разнобой у обоих блоков
2022-01-30_084458.png
2022-01-30_084458.png (2.86 КБ) 1798 просмотров
2022-01-30_084521.png
2022-01-30_084521.png (3.08 КБ) 1798 просмотров

тест.flp
(3.04 МБ) 51 скачивание

Запись/чтение массива и строк в/из EEPROM

Добавлено: 30.01.2022{, 17:57}
AlexCrane
Di123, Да Вы лучший бете-тестер
тест в2.flp
(2.69 МБ) 60 скачиваний
Исправил, прошу всех, кто интересуется данной темой, перекачать блок!

Запись/чтение массива и строк в/из EEPROM

Добавлено: 31.01.2022{, 09:44}
Di123
неработает
считывание работает а соответственно и запись тоже
но после перезагрузки он больше не считывает как будто она самостёрлась от туда
2022-01-31_133543.png
а если на внешний адрес вывести то не компилит
2022-01-31_134340.png
тест в2.1.flp
(2.71 МБ) 47 скачиваний
Отправлено спустя 15 минут 30 секунд:
в виде паровозика тоже не хочет компилить
2022-01-31_135934.png


тест в2.2.flp
(2.87 МБ) 53 скачивания

Запись/чтение массива и строк в/из EEPROM

Добавлено: 31.01.2022{, 12:00}
Di123
и ещё если не кому не нужно будет то ради меня не могли бы добавить туда два пункта :smile469:
в одном что бы я мог выбрать раздел в памяти допусти 3000-4000 кбит
а во втором галочка циклическая запись

так как ваш блок знает конечный адрес в этом диапазоне то что бы при следующим записывании он брал этот адрес увеличивал его на один и по новой записывал в следующие ячейки а когда дойдёт до конца выделеного диапазона начинал записывать с начала диапазона выделеного

так сказать продлить жизнь епрома
а то мои просьбы к автору добавить fram ни к чему не привели хотя эта память позволила бы решить кучу проблем с её цыклом жизни если записывать раз в 1 сек то её хватит на 3 ляма лет
я бы мог отказать от разбери и перенести базы данных в есп и обновлять сборы статистик хоть каждые 100мс

пока надежда на вас меня пока и такой цикличный вариант устроил бы

Запись/чтение массива и строк в/из EEPROM

Добавлено: 31.01.2022{, 13:22}
AlexCrane
Удалено, нерабочие блоки

Запись/чтение массива и строк в/из EEPROM

Добавлено: 31.01.2022{, 16:38}
Di123
компилится но уарт теперь молчит

в настройках записи пропал пункт ручной установки адреса
тест в2.3.flp
(3.42 МБ) 45 скачиваний

Запись/чтение массива и строк в/из EEPROM

Добавлено: 31.01.2022{, 18:51}
AlexCrane
Di123, Вроде все выгреб Отпишись

Запись/чтение массива и строк в/из EEPROM

Добавлено: 01.02.2022{, 05:19}
Di123
странно но стартануло со чтения 00:01:00 возможно старая запись не стёрлась
поставил блок очистки епром но всеравно стартует с чтения этой записи
а так сохраняет следующию запись норм 00:02:00
но стоит перезалить контролер как стартует чтение опять с 00:01:00

а с прицепом уарт молчит
тест в2.4.flp
(4.08 МБ) 57 скачиваний

Запись/чтение массива и строк в/из EEPROM

Добавлено: 14.02.2022{, 14:03}
Rovki
НЕ хочет работать с есп32 . Создаю свою точку доступа с IP 10.10.0.1 , а в свойствах сети на ПК вижу IP 192.168.4.1 ??? Поэтому не работает совместно с интерфейсом ESPUI :( Имя сети заданное мною ,а IP нет!

Запись/чтение массива и строк в/из EEPROM

Добавлено: 21.08.2023{, 21:01}
sector
AlexCrane писал(а):
29.10.2021{, 17:48}
Набор простых блоков для записи/чтения массива и строк в/из EEPROM
Доброго времени! Этот блок работает только со встроенным EEPROM? А как записать и считать из внешнего EEPROM?

Запись/чтение массива и строк в/из EEPROM

Добавлено: 25.08.2023{, 22:04}
AlexCrane
sector писал(а):
21.08.2023{, 21:01}
Этот блок работает только со встроенным EEPROM?
Да

Запись/чтение массива и строк в/из EEPROM

Добавлено: 29.10.2023{, 15:18}
Sergoo
AlexCrane писал(а):
29.10.2021{, 17:48}
Набор простых блоков для записи/чтения массива и строк в/из EEPROM
Добрый день, вроде пишите ,что на ESP тоже работает, но что-то ошибка при компиляции... Один блок запись массива строки и ошибка.
или все же это не для ESP плат..?

Запись/чтение массива и строк в/из EEPROM

Добавлено: 30.10.2023{, 08:57}
AlexCrane
Sergoo, Скачайте последнюю версию блока из шапки

Запись/чтение массива и строк в/из EEPROM

Добавлено: 31.10.2023{, 12:56}
Ander
Использовал данные блоки параллельно с включенной функциией ЕЕПРОМ в программе. В программе в ЕЕПРОМ пишутся только данные о настройках WI-FI. Чтобы не пересекалось использовал стартовый адрес 1024, но все ровно при рестарте 8266 некоторые данные теряются.

Вопрос
1 - конфликтуют ли блоки со штаными?
2 в каком виде задавать адрес? (пример записываю массив адреса датчика ds18b20 в ЕЕЕПРОМ по адресу 1000, на выходе получаю адрес - 9., записываю адрес следующего по адресу 1009, на выходе опять 9)

При отключенном режиме работы с ЕЕПРОМ(штатно) всё корректно сохраняется и читается!

Запись/чтение массива и строк в/из EEPROM

Добавлено: 31.10.2023{, 18:35}
AlexCrane
Ander, При использовании штатных блоков, рассчитывается и объявляется рассчитанный размер EEPROM (пример EEPROM.begin(41). Выше этого размера не прыгнуть, только через костыли. К примеру создать пользовательский параметр с размером 2000 и использовать его где в программе разок. И уже писать туда.

Запись/чтение массива и строк в/из EEPROM

Добавлено: 31.10.2023{, 19:11}
Ander
Штатный объявляет EEPROM.begin(4096), если создать пользовательский параметр с размером 2000, как узнать его начальный и конечный адрес?

Отправлено спустя 4 минуты 14 секунд:
Т.е. дапустим штатный показывает что занято 99 байт, создаём переменную в 2000 байт! и юзаем диапазон с 100 до 2099?

Запись/чтение массива и строк в/из EEPROM

Добавлено: 01.11.2023{, 15:19}
AlexCrane
Ander писал(а):
31.10.2023{, 19:15}
Т.е. дапустим штатный показывает что занято 99 байт, создаём переменную в 2000 байт! и юзаем диапазон с 100 до 2099?
Возможно, попробуйте

Запись/чтение массива и строк в/из EEPROM

Добавлено: 01.11.2023{, 18:23}
Ander
не работает так как надо!
При ресете все сохраняется в этом диапазоне, но при перепрошивки этот участок затирается пустой переменной объявленной в этом диапазоне