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

Простые блоки для чтения и записи массива и строк в EEPROM

Пользовательские блоки дающие дополнительные возможности при работе с EEPROM и SD картами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

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

#1

Сообщение AlexCrane » 29.10.2021{, 17:48}

Набор простых блоков для записи/чтения массива и строк в/из 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 КБ) 271 скачивание
Последний раз редактировалось AlexCrane 03.01.2022{, 09:44}, всего редактировалось 8 раз.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

OldRoman
Рядовой
Сообщения: 11
Зарегистрирован: 23.12.2021{, 09:51}
Репутация: 0
Имя: Раман

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

#41

Сообщение OldRoman » 02.01.2022{, 22:12}

Все ОК. Вывод нормальный,индекс,содержимое.

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

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

#42

Сообщение AlexCrane » 03.01.2022{, 09:45}

Добавил в шапку исправленную версию блоков (исправлена запись массивов в ESP)
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03.11.2018{, 19:38}
Репутация: 29
Имя: Дмитрий

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

#43

Сообщение Di123 » 30.01.2022{, 04:49}

неполучается
в параметрах в обоих блоках выбираю 0
2022-01-30_083620.png
через внешний адрес
2022-01-30_084201.png
да и в параметрах галочки в разнобой у обоих блоков
2022-01-30_084458.png
2022-01-30_084458.png (2.86 КБ) 1783 просмотра
2022-01-30_084521.png
2022-01-30_084521.png (3.08 КБ) 1783 просмотра

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

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

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

#44

Сообщение AlexCrane » 30.01.2022{, 17:57}

Di123, Да Вы лучший бете-тестер
тест в2.flp
(2.69 МБ) 60 скачиваний
Исправил, прошу всех, кто интересуется данной темой, перекачать блок!
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03.11.2018{, 19:38}
Репутация: 29
Имя: Дмитрий

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

#45

Сообщение Di123 » 31.01.2022{, 09:44}

неработает
считывание работает а соответственно и запись тоже
но после перезагрузки он больше не считывает как будто она самостёрлась от туда
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 скачивания

Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03.11.2018{, 19:38}
Репутация: 29
Имя: Дмитрий

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

#46

Сообщение Di123 » 31.01.2022{, 12:00}

и ещё если не кому не нужно будет то ради меня не могли бы добавить туда два пункта :smile469:
в одном что бы я мог выбрать раздел в памяти допусти 3000-4000 кбит
а во втором галочка циклическая запись

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

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

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

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

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

#47

Сообщение AlexCrane » 31.01.2022{, 13:22}

Удалено, нерабочие блоки
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03.11.2018{, 19:38}
Репутация: 29
Имя: Дмитрий

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

#48

Сообщение Di123 » 31.01.2022{, 16:38}

компилится но уарт теперь молчит

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

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

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

#49

Сообщение AlexCrane » 31.01.2022{, 18:51}

Di123, Вроде все выгреб Отпишись
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03.11.2018{, 19:38}
Репутация: 29
Имя: Дмитрий

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

#50

Сообщение Di123 » 01.02.2022{, 05:19}

странно но стартануло со чтения 00:01:00 возможно старая запись не стёрлась
поставил блок очистки епром но всеравно стартует с чтения этой записи
а так сохраняет следующию запись норм 00:02:00
но стоит перезалить контролер как стартует чтение опять с 00:01:00

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

Аватара пользователя
Rovki
Полковник
Сообщения: 4872
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 269
Откуда: Чехов
Имя: Анатолий
Контактная информация:

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

#51

Сообщение Rovki » 14.02.2022{, 14:03}

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

sector
Рядовой
Сообщения: 4
Зарегистрирован: 01.01.2019{, 12:15}
Репутация: 0
Имя: Sector

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

#52

Сообщение sector » 21.08.2023{, 21:01}

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

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

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

#53

Сообщение AlexCrane » 25.08.2023{, 22:04}

sector писал(а):
21.08.2023{, 21:01}
Этот блок работает только со встроенным EEPROM?
Да
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Sergoo
Рядовой
Сообщения: 14
Зарегистрирован: 29.09.2021{, 11:34}
Репутация: 1
Имя: Сергей

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

#54

Сообщение Sergoo » 29.10.2023{, 15:18}

AlexCrane писал(а):
29.10.2021{, 17:48}
Набор простых блоков для записи/чтения массива и строк в/из EEPROM
Добрый день, вроде пишите ,что на ESP тоже работает, но что-то ошибка при компиляции... Один блок запись массива строки и ошибка.
или все же это не для ESP плат..?
Вложения
ошибкаESP32-8266.txt
(2.02 КБ) 11 скачиваний
TESTзаписьМассСтринг.flp
(1.38 МБ) 8 скачиваний

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

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

#55

Сообщение AlexCrane » 30.10.2023{, 08:57}

Sergoo, Скачайте последнюю версию блока из шапки
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Ander
Рядовой
Сообщения: 66
Зарегистрирован: 31.10.2023{, 12:50}
Репутация: 12
Имя: Андрей

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

#56

Сообщение Ander » 31.10.2023{, 12:56}

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

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

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

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

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

#57

Сообщение AlexCrane » 31.10.2023{, 18:35}

Ander, При использовании штатных блоков, рассчитывается и объявляется рассчитанный размер EEPROM (пример EEPROM.begin(41). Выше этого размера не прыгнуть, только через костыли. К примеру создать пользовательский параметр с размером 2000 и использовать его где в программе разок. И уже писать туда.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Ander
Рядовой
Сообщения: 66
Зарегистрирован: 31.10.2023{, 12:50}
Репутация: 12
Имя: Андрей

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

#58

Сообщение Ander » 31.10.2023{, 19:11}

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

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

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

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

#59

Сообщение AlexCrane » 01.11.2023{, 15:19}

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

Ander
Рядовой
Сообщения: 66
Зарегистрирован: 31.10.2023{, 12:50}
Репутация: 12
Имя: Андрей

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

#60

Сообщение Ander » 01.11.2023{, 18:23}

не работает так как надо!
При ресете все сохраняется в этом диапазоне, но при перепрошивки этот участок затирается пустой переменной объявленной в этом диапазоне

Ответить

Вернуться в «EEPROM и SD карты»