Страница 2 из 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. Если они не используются в проекте, то их можно отключить в параметрах.
Сами блоки:
Критическое обновление
Блоки в проекте (в примерах используются блоки ранних версий!!!):
Запись/чтение массива и строк в/из EEPROM
Добавлено: 26.12.2021{, 19:00}
AlexCrane
OldRoman, Поставьте в параметрах галочку на контроллер ESP
Запись/чтение массива и строк в/из EEPROM
Добавлено: 26.12.2021{, 19:10}
neangel
OldRoman писал(а): ↑26.12.2021{, 18:52}
К сожалению ...
на строке
EEPROM.update(address_ac, val_ac);
ошибка
'class EEPROMClass' has no member named 'update'
У меня так было с вариантом v1.2
Но к счастью кроме варианта v1.2 добавлен и этот вариант для ЕСП =
Массив_и_строки_EEPROM_v1.3
В том же IDE 1.8.15 всё заработало.
P.S.
AlexCrane = гений.
Добавлю.
AlexCrane писал(а): ↑26.12.2021{, 19:00}
OldRoman, Поставьте в параметрах галочку на контроллер ESP
Не может этого быть чтобы OldRoman не поставил галочку и пишет что не работает.
Запись/чтение массива и строк в/из EEPROM
Добавлено: 26.12.2021{, 19:27}
OldRoman
Извиняюсь компиляция проходит,не заметил активацию ESP в настройках блока.Но при обесточиванию данные теряются.
Запись/чтение массива и строк в/из EEPROM
Добавлено: 26.12.2021{, 20:08}
AlexCrane
OldRoman, Скинь проект
Вот мой тестовый, все работает
Запись/чтение массива и строк в/из EEPROM
Добавлено: 26.12.2021{, 20:47}
neangel
Всё работает.
И после отключения питания вновь записанные значения остаются.
Запнулся только на одном.
Может быть ничего менять не надо и достаточно этой картинки.
....
Запись/чтение массива и строк в/из EEPROM
Добавлено: 26.12.2021{, 21:36}
OldRoman
Странно но у меня не сохраняются,в чем косяк. Не знаю правильно вложен файл.
Отправлено спустя 14 минут 31 секунду:
Моя версия 7-3-8 не открывает Ваш файл.
Запись/чтение массива и строк в/из EEPROM
Добавлено: 26.12.2021{, 21:56}
neangel
Зато его откроет последняя версия … 7-4-2
https://flprog.ru/downloads/distrutives ... my-flprog/
OldRoman писал(а): ↑26.12.2021{, 21:50}
Странно но у меня ... косяк
И кстати проверять новые блоки где много лишнего не корректно.
Упростите свою схему и сами найдёте косяк
Запись/чтение массива и строк в/из EEPROM
Добавлено: 26.12.2021{, 22:12}
OldRoman
Спасибо.Поработаю.
Запись/чтение массива и строк в/из EEPROM
Добавлено: 27.12.2021{, 07:54}
AlexCrane
OldRoman писал(а): ↑26.12.2021{, 21:50}
SCADA_TD_FULL.flp
Странно но у меня не сохраняются,в чем косяк. Не знаю правильно вложен файл.
Отправлено спустя 14 минут 31 секунду:
Моя версия 7-3-8 не открывает Ваш файл.
Не вижу смысла читать из EEPROM при каждом изменении счетчика, достаточно один раз при запуске контроллера и дальше работать с массивом
Запись/чтение массива и строк в/из EEPROM
Добавлено: 28.12.2021{, 20:09}
AlexCrane
Новая версия блока 1.4 в шапке. Исправил блок стирания EEPROM для ESP.
Отправлено спустя 1 час 11 минут 41 секунду:
Прошу перекачать, нашел недочеты в блоке стирания
Запись/чтение массива и строк в/из EEPROM
Добавлено: 31.12.2021{, 15:28}
OldRoman
Подскажите,пожалуйста, как правило подключить блоки EEPROM в проекте для сохранения после перегрузки.
А то мои попытки к ничему не привели.Работа с ESP+ штатная SCADA.Спасибо.
Запись/чтение массива и строк в/из EEPROM
Добавлено: 31.12.2021{, 16:44}
AlexCrane
OldRoman, Крайне не понятный алгоритм (да еще каждую минут писать в EEPROM)
попробовал причесать (иногда нужно смотреть последовательность выполнения блоков и раскидывать по платам код)
Запись/чтение массива и строк в/из EEPROM
Добавлено: 01.01.2022{, 11:27}
OldRoman
Спасибо. Это тест, реально запись происходит раз в сутки.Ваш блок позволяет оказаться то SD и оперативно контролировать ситуацию.Огромное спасибо!
Отправлено спустя 6 часов 13 минут 47 секунд:
Уважаемый Alex прогнал в железе,результата нет. Перегружаеш в масиве нули.Разные ESP, разные адреса выход 0.
Ну в чем проблема? Помогите.
Запись/чтение массива и строк в/из EEPROM
Добавлено: 01.01.2022{, 22:39}
AlexCrane
OldRoman, Скинь в ЛС свой проект гляну
Запись/чтение массива и строк в/из EEPROM
Добавлено: 02.01.2022{, 06:42}
OldRoman
Alex тест NEWTEST2 у меня не работает.Спасибо.
Запись/чтение массива и строк в/из EEPROM
Добавлено: 02.01.2022{, 14:45}
AlexCrane
OldRoman, Исправил адрес для записи и забыл поменять в блоке для чтения
Запись/чтение массива и строк в/из EEPROM
Добавлено: 02.01.2022{, 15:08}
OldRoman
Да я заметил.Но это не помогло. 0 или 50 массив пустой.
Отправлено спустя 9 минут 54 секунды:
Я имел ввиду, что после перегруза массив пустой.А так все правильно.
Запись/чтение массива и строк в/из EEPROM
Добавлено: 02.01.2022{, 17:06}
AlexCrane
OldRoman, Пофиксил, протестируй новый блок (замени в своем примере)
Запись/чтение массива и строк в/из EEPROM
Добавлено: 02.01.2022{, 18:27}
OldRoman
Alex.При компиляции сообщение о ошибке:
EEPROM.put(, _FLPArray232694143);
expected primary-expression before ',' toke
Отправлено спустя 19 минут 10 секунд:
Удалил все прежние версии и компиляция прошла.
Но массив по прежнему не сохраняется.
Запись/чтение массива и строк в/из EEPROM
Добавлено: 02.01.2022{, 20:53}
AlexCrane
OldRoman, Вот такой тест прогони, при включении esp сразу выводит в uart содержимое eeprom. А затем каждую секунду сохраняет в eeprom собственно секунду. При резете или вкл/выключении питания сразу увидите содержимое eeprom.