Страница 1 из 4
Запись/чтение массива и строк в/из EEPROM
Добавлено: 29 окт 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_v1.6b_(Code_-_Professional).ubi
Блоки в проекте (в примерах используются блоки ранних версий!!!):
Запись и чтение String с EEPROM_NEW.zip
Запись/чтение массива в/из EEPROM
Добавлено: 30 окт 2021, 16:58
Утвш
Хорошие блоки. Спасибо. Жаль, со стрингами не дружат.
Запись/чтение массива в/из EEPROM
Добавлено: 30 окт 2021, 17:20
AlexCrane
Утвш писал(а): 30 окт 2021, 16:58
Хорошие блоки. Спасибо. Жаль, со стрингами не дружат.
В каком смысле?
Запись/чтение массива в/из EEPROM
Добавлено: 30 окт 2021, 17:42
Dryundel
[ref]AlexCrane[/ref], идея хорошая, но может надо встроить R-триггер в блок записи?
Обязательно кто нибудь забудет поставить R-триггер и хана EEPROM.
Отправлено спустя 7 минут 9 секунд:
Я бы еще добавил опционально "Запись по изменению значения на входе", но тоже с оговоркой (предупреждением) в описании.
Запись/чтение массива в/из EEPROM
Добавлено: 30 окт 2021, 18:05
Утвш
AlexCrane писал(а): 30 окт 2021, 17:20
В каком смысле?
Сохранил массив String, а читаю одни кракозябры.
Запись/чтение массива в/из EEPROM
Добавлено: 30 окт 2021, 18:40
AlexCrane
Обновил блок. Добавил возможность задания адреса со входа.
Dryundel писал(а): 30 окт 2021, 17:42
Обязательно кто нибудь забудет поставить R-триггер и хана EEPROM.
Считаю это лишним. НО добавил этот пункт в описание.
Dryundel писал(а): 30 окт 2021, 17:42
Я бы еще добавил опционально "Запись по изменению значения на входе", но тоже с оговоркой (предупреждением) в описании.
Используется метод update, т.е. лишний раз не пишет.
Запись/чтение массива в/из EEPROM
Добавлено: 30 окт 2021, 18:40
AlexCrane
[ref]Утвш[/ref], Можно увидеть проект
Запись/чтение массива в/из EEPROM
Добавлено: 31 окт 2021, 07:01
Утвш
AlexCrane писал(а): 30 окт 2021, 18:40
Можно увидеть проект
К сожалению я сейчас на работе. Но если Вы считаете, что блоки должны работать со String массивами, то я попытаюсь еще повозиться. Если уж не получится, то попрошу помощи. Спасибо.
Запись/чтение массива в/из EEPROM
Добавлено: 31 окт 2021, 20:18
Утвш
Возня моя результатов не дала. По прежнему, после обесточивания платы и заполнения String массива из EEPROM, из массива читаются кракозябры. С Integer массивами все проходит отлично. Прикладываю два тестпроекта с разными типами массивов.
Запись и чтение String с EEPROM.flp
Запись и чтение Integer с EEPROM.flp
Запись/чтение массива в/из EEPROM
Добавлено: 31 окт 2021, 22:06
AlexCrane
[ref]Утвш[/ref], Прогнал в Протеусе, все четко работает
Запись и чтение String с EEPROM_1.flp
Запись/чтение массива в/из EEPROM
Добавлено: 01 ноя 2021, 06:57
Утвш
Не могу сказать, что меня это сильно утешило. Попробую поменять плату и комп.
Запись/чтение массива в/из EEPROM
Добавлено: 01 ноя 2021, 19:08
Утвш
Утвш писал(а): 01 ноя 2021, 06:57
Попробую поменять плату и комп.
Ничего это не изменило.
AlexCrane писал(а): 31 окт 2021, 22:06
Прогнал в Протеусе, все четко работает
Выходит Протеус иногда шутит.
Запись/чтение массива и строк в/из EEPROM
Добавлено: 05 ноя 2021, 09:45
AlexCrane
[ref]Утвш[/ref], Переработал блоки, теперь массив строк можно сохранять в EEPROM
Утвш писал(а): 31 окт 2021, 20:18
заполнения String массива из EEPROM, из массива читаются кракозябры
Вы правы, если напрямую сохранять String в EEPROM, то вместо строки сохраняется лишь указатель на строку, а не сама строка
Запись/чтение массива и строк в/из EEPROM
Добавлено: 06 ноя 2021, 08:40
Утвш
Ур-р-р-а! Заработало! Я уж, честно говоря, потерял надежду. Еще раз спасибо.
Запись/чтение массива и строк в/из EEPROM
Добавлено: 06 ноя 2021, 09:38
AlexCrane
[ref]Утвш[/ref], Какое практическое применение имеет блок записи динамических строковых массивов в EEPROM ??? Слишком ресурсозатратное это дело для avr.
Запись/чтение массива и строк в/из EEPROM
Добавлено: 07 ноя 2021, 07:40
Утвш
Пытаюсь сделать часы-напоминалку даты дней рождения. Хочу использовать строковый массив с возможностью внесения изменений с Nextion. А при отключении питания, надо как-то сохранять.
Запись/чтение массива и строк в/из EEPROM
Добавлено: 09 ноя 2021, 08:35
edyapd
И на какое количество дат хватает места?
Запись/чтение массива и строк в/из EEPROM
Добавлено: 26 дек 2021, 11:19
OldRoman
Хороший блок.Но у меня ESP12+RTC при попытке использовать блок с адресом 50, компиляция не проходит в Arduino IDE.
Подскажите, пожалуйста,работает блок с ESP12 или я делаю что то криво.Спасибо.
Запись/чтение массива и строк в/из EEPROM
Добавлено: 26 дек 2021, 16:40
AlexCrane
[ref]OldRoman[/ref], Добавил поддержку ESP, блок версии 1.3 в шапке
Запись/чтение массива и строк в/из EEPROM
Добавлено: 26 дек 2021, 18:52
OldRoman
К сожалению при компиляции в Arduino: 1.8.15 на строке
EEPROM.update(address_ac, val_ac);
ошибка
'class EEPROMClass' has no member named 'update'