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

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

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

Сообщение 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_v1.6b_(Code_-_Professional).ubi
Блоки в проекте (в примерах используются блоки ранних версий!!!):
Запись и чтение String с EEPROM_NEW.zip
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось AlexCrane 03 янв 2022, 09:44, всего редактировалось 8 раз.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Утвш
Сержант
Сообщения: 148
Зарегистрирован: 02 дек 2016, 07:31
Благодарил (а): 2 раза

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

Сообщение Утвш »

Хорошие блоки. Спасибо. Жаль, со стрингами не дружат.
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

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

Сообщение AlexCrane »

Утвш писал(а): 30 окт 2021, 16:58 Хорошие блоки. Спасибо. Жаль, со стрингами не дружат.
В каком смысле?
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Аватара пользователя
Dryundel
Полковник
Сообщения: 2412
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 20 раз

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

Сообщение Dryundel »

[ref]AlexCrane[/ref], идея хорошая, но может надо встроить R-триггер в блок записи?
Обязательно кто нибудь забудет поставить R-триггер и хана EEPROM.

Отправлено спустя 7 минут 9 секунд:
Я бы еще добавил опционально "Запись по изменению значения на входе", но тоже с оговоркой (предупреждением) в описании.
Утвш
Сержант
Сообщения: 148
Зарегистрирован: 02 дек 2016, 07:31
Благодарил (а): 2 раза

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

Сообщение Утвш »

AlexCrane писал(а): 30 окт 2021, 17:20 В каком смысле?
Сохранил массив String, а читаю одни кракозябры.
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

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

Сообщение AlexCrane »

Обновил блок. Добавил возможность задания адреса со входа.
Dryundel писал(а): 30 окт 2021, 17:42 Обязательно кто нибудь забудет поставить R-триггер и хана EEPROM.
Считаю это лишним. НО добавил этот пункт в описание.
Dryundel писал(а): 30 окт 2021, 17:42 Я бы еще добавил опционально "Запись по изменению значения на входе", но тоже с оговоркой (предупреждением) в описании.
Используется метод update, т.е. лишний раз не пишет.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

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

Сообщение AlexCrane »

[ref]Утвш[/ref], Можно увидеть проект
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Утвш
Сержант
Сообщения: 148
Зарегистрирован: 02 дек 2016, 07:31
Благодарил (а): 2 раза

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

Сообщение Утвш »

AlexCrane писал(а): 30 окт 2021, 18:40 Можно увидеть проект
К сожалению я сейчас на работе. Но если Вы считаете, что блоки должны работать со String массивами, то я попытаюсь еще повозиться. Если уж не получится, то попрошу помощи. Спасибо.
Утвш
Сержант
Сообщения: 148
Зарегистрирован: 02 дек 2016, 07:31
Благодарил (а): 2 раза

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

Сообщение Утвш »

Возня моя результатов не дала. По прежнему, после обесточивания платы и заполнения String массива из EEPROM, из массива читаются кракозябры. С Integer массивами все проходит отлично. Прикладываю два тестпроекта с разными типами массивов.
Запись и чтение String с EEPROM.flp
Запись и чтение Integer с EEPROM.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

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

Сообщение AlexCrane »

[ref]Утвш[/ref], Прогнал в Протеусе, все четко работает
Запись и чтение String с EEPROM_1.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Утвш
Сержант
Сообщения: 148
Зарегистрирован: 02 дек 2016, 07:31
Благодарил (а): 2 раза

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

Сообщение Утвш »

Не могу сказать, что меня это сильно утешило. Попробую поменять плату и комп.
Утвш
Сержант
Сообщения: 148
Зарегистрирован: 02 дек 2016, 07:31
Благодарил (а): 2 раза

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

Сообщение Утвш »

Утвш писал(а): 01 ноя 2021, 06:57 Попробую поменять плату и комп.
Ничего это не изменило.
AlexCrane писал(а): 31 окт 2021, 22:06 Прогнал в Протеусе, все четко работает
Выходит Протеус иногда шутит.
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

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

Сообщение AlexCrane »

[ref]Утвш[/ref], Переработал блоки, теперь массив строк можно сохранять в EEPROM
Утвш писал(а): 31 окт 2021, 20:18 заполнения String массива из EEPROM, из массива читаются кракозябры
Вы правы, если напрямую сохранять String в EEPROM, то вместо строки сохраняется лишь указатель на строку, а не сама строка
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Утвш
Сержант
Сообщения: 148
Зарегистрирован: 02 дек 2016, 07:31
Благодарил (а): 2 раза

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

Сообщение Утвш »

Ур-р-р-а! Заработало! Я уж, честно говоря, потерял надежду. Еще раз спасибо.
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

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

Сообщение AlexCrane »

[ref]Утвш[/ref], Какое практическое применение имеет блок записи динамических строковых массивов в EEPROM ??? Слишком ресурсозатратное это дело для avr.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Утвш
Сержант
Сообщения: 148
Зарегистрирован: 02 дек 2016, 07:31
Благодарил (а): 2 раза

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

Сообщение Утвш »

Пытаюсь сделать часы-напоминалку даты дней рождения. Хочу использовать строковый массив с возможностью внесения изменений с Nextion. А при отключении питания, надо как-то сохранять.
edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20 сен 2019, 11:38
Имя: Эдуард

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

Сообщение edyapd »

И на какое количество дат хватает места?
OldRoman
Рядовой
Сообщения: 11
Зарегистрирован: 23 дек 2021, 09:51
Имя: Раман

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

Сообщение OldRoman »

Хороший блок.Но у меня ESP12+RTC при попытке использовать блок с адресом 50, компиляция не проходит в Arduino IDE.
Подскажите, пожалуйста,работает блок с ESP12 или я делаю что то криво.Спасибо.
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

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

Сообщение AlexCrane »

[ref]OldRoman[/ref], Добавил поддержку ESP, блок версии 1.3 в шапке
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
OldRoman
Рядовой
Сообщения: 11
Зарегистрирован: 23 дек 2021, 09:51
Имя: Раман

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

Сообщение OldRoman »

К сожалению при компиляции в Arduino: 1.8.15 на строке
EEPROM.update(address_ac, val_ac);
ошибка
'class EEPROMClass' has no member named 'update'
Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя