Страница 1 из 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 КБ) 281 скачивание

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

Добавлено: 30.10.2021{, 16:58}
Утвш
Хорошие блоки. Спасибо. Жаль, со стрингами не дружат.

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

Добавлено: 30.10.2021{, 17:20}
AlexCrane
Утвш писал(а):
30.10.2021{, 16:58}
Хорошие блоки. Спасибо. Жаль, со стрингами не дружат.
В каком смысле?

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

Добавлено: 30.10.2021{, 17:34}
Dryundel
AlexCrane, идея хорошая, но может надо встроить R-триггер в блок записи?
Обязательно кто нибудь забудет поставить R-триггер и хана EEPROM.

Отправлено спустя 7 минут 9 секунд:
Я бы еще добавил опционально "Запись по изменению значения на входе", но тоже с оговоркой (предупреждением) в описании.

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

Добавлено: 30.10.2021{, 18:05}
Утвш
AlexCrane писал(а):
30.10.2021{, 17:20}
В каком смысле?
Сохранил массив String, а читаю одни кракозябры.

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

Добавлено: 30.10.2021{, 18:40}
AlexCrane
Обновил блок. Добавил возможность задания адреса со входа.
Dryundel писал(а):
30.10.2021{, 17:42}
Обязательно кто нибудь забудет поставить R-триггер и хана EEPROM.
Считаю это лишним. НО добавил этот пункт в описание.
Dryundel писал(а):
30.10.2021{, 17:42}
Я бы еще добавил опционально "Запись по изменению значения на входе", но тоже с оговоркой (предупреждением) в описании.
Используется метод update, т.е. лишний раз не пишет.

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

Добавлено: 30.10.2021{, 18:40}
AlexCrane
Утвш, Можно увидеть проект

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

Добавлено: 31.10.2021{, 07:01}
Утвш
AlexCrane писал(а):
30.10.2021{, 18:40}
Можно увидеть проект
К сожалению я сейчас на работе. Но если Вы считаете, что блоки должны работать со String массивами, то я попытаюсь еще повозиться. Если уж не получится, то попрошу помощи. Спасибо.

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

Добавлено: 31.10.2021{, 20:18}
Утвш
Возня моя результатов не дала. По прежнему, после обесточивания платы и заполнения String массива из EEPROM, из массива читаются кракозябры. С Integer массивами все проходит отлично. Прикладываю два тестпроекта с разными типами массивов.
Запись и чтение String с EEPROM.flp
(825.01 КБ) 97 скачиваний
Запись и чтение Integer с EEPROM.flp
(828.56 КБ) 101 скачивание

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

Добавлено: 31.10.2021{, 22:06}
AlexCrane
Утвш, Прогнал в Протеусе, все четко работает
Запись и чтение String с EEPROM_1.flp
(750.05 КБ) 107 скачиваний

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

Добавлено: 01.11.2021{, 06:57}
Утвш
Не могу сказать, что меня это сильно утешило. Попробую поменять плату и комп.

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

Добавлено: 01.11.2021{, 19:08}
Утвш
Утвш писал(а):
01.11.2021{, 06:57}
Попробую поменять плату и комп.
Ничего это не изменило.
AlexCrane писал(а):
31.10.2021{, 22:06}
Прогнал в Протеусе, все четко работает
Выходит Протеус иногда шутит.

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

Добавлено: 05.11.2021{, 09:45}
AlexCrane
Утвш, Переработал блоки, теперь массив строк можно сохранять в EEPROM
Утвш писал(а):
31.10.2021{, 20:18}
заполнения String массива из EEPROM, из массива читаются кракозябры
Вы правы, если напрямую сохранять String в EEPROM, то вместо строки сохраняется лишь указатель на строку, а не сама строка

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

Добавлено: 06.11.2021{, 08:40}
Утвш
Ур-р-р-а! Заработало! Я уж, честно говоря, потерял надежду. Еще раз спасибо.

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

Добавлено: 06.11.2021{, 09:38}
AlexCrane
Утвш, Какое практическое применение имеет блок записи динамических строковых массивов в EEPROM ??? Слишком ресурсозатратное это дело для avr.

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

Добавлено: 07.11.2021{, 07:40}
Утвш
Пытаюсь сделать часы-напоминалку даты дней рождения. Хочу использовать строковый массив с возможностью внесения изменений с Nextion. А при отключении питания, надо как-то сохранять.

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

Добавлено: 09.11.2021{, 08:35}
edyapd
И на какое количество дат хватает места?

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

Добавлено: 26.12.2021{, 11:19}
OldRoman
Хороший блок.Но у меня ESP12+RTC при попытке использовать блок с адресом 50, компиляция не проходит в Arduino IDE.
Подскажите, пожалуйста,работает блок с ESP12 или я делаю что то криво.Спасибо.

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

Добавлено: 26.12.2021{, 16:40}
AlexCrane
OldRoman, Добавил поддержку ESP, блок версии 1.3 в шапке

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

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