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

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

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

Запись/чтение массива и строк в/из 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. Если они не используются в проекте, то их можно отключить в параметрах.

Сами блоки:
Массив_и_строки_EEPROM_v1.2_(Code_-_Professional).ubi
Блоки в проекте:
Запись и чтение String с EEPROM_NEW.zip
Набор блоков для записи массивов и строк в EEPROM.zip
Для скачивания вложений Вы должны быть зарегистрированы.
Последний раз редактировалось AlexCrane 05.11.2021{, 09:50}, всего редактировалось 3 раза.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Утвш
Рядовой
Сообщения: 84
Зарегистрирован: 02.12.2016{, 07:31}
Репутация: 1

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

#2

Сообщение Утвш » 30.10.2021{, 16:58}

Хорошие блоки. Спасибо. Жаль, со стрингами не дружат.

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

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

#3

Сообщение AlexCrane » 30.10.2021{, 17:20}

Утвш писал(а):
30.10.2021{, 16:58}
Хорошие блоки. Спасибо. Жаль, со стрингами не дружат.
В каком смысле?
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Аватара пользователя
Dryundel
Подполковник
Сообщения: 1347
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 421
Откуда: Ярославль
Имя: Андрей
Контактная информация:

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

#4

Сообщение Dryundel » 30.10.2021{, 17:34}

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

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

Утвш
Рядовой
Сообщения: 84
Зарегистрирован: 02.12.2016{, 07:31}
Репутация: 1

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

#5

Сообщение Утвш » 30.10.2021{, 18:05}

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

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

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

#6

Сообщение AlexCrane » 30.10.2021{, 18:40}

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

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

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

#7

Сообщение AlexCrane » 30.10.2021{, 18:40}

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

Утвш
Рядовой
Сообщения: 84
Зарегистрирован: 02.12.2016{, 07:31}
Репутация: 1

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

#8

Сообщение Утвш » 31.10.2021{, 07:01}

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

Утвш
Рядовой
Сообщения: 84
Зарегистрирован: 02.12.2016{, 07:31}
Репутация: 1

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

#9

Сообщение Утвш » 31.10.2021{, 20:18}

Возня моя результатов не дала. По прежнему, после обесточивания платы и заполнения String массива из EEPROM, из массива читаются кракозябры. С Integer массивами все проходит отлично. Прикладываю два тестпроекта с разными типами массивов.
Запись и чтение String с EEPROM.flp
Запись и чтение Integer с EEPROM.flp
Для скачивания вложений Вы должны быть зарегистрированы.

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

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

#10

Сообщение AlexCrane » 31.10.2021{, 22:06}

Утвш, Прогнал в Протеусе, все четко работает
Запись и чтение String с EEPROM_1.flp
Для скачивания вложений Вы должны быть зарегистрированы.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Утвш
Рядовой
Сообщения: 84
Зарегистрирован: 02.12.2016{, 07:31}
Репутация: 1

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

#11

Сообщение Утвш » 01.11.2021{, 06:57}

Не могу сказать, что меня это сильно утешило. Попробую поменять плату и комп.

Утвш
Рядовой
Сообщения: 84
Зарегистрирован: 02.12.2016{, 07:31}
Репутация: 1

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

#12

Сообщение Утвш » 01.11.2021{, 19:08}

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

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

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

#13

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

Утвш, Переработал блоки, теперь массив строк можно сохранять в EEPROM
Утвш писал(а):
31.10.2021{, 20:18}
заполнения String массива из EEPROM, из массива читаются кракозябры
Вы правы, если напрямую сохранять String в EEPROM, то вместо строки сохраняется лишь указатель на строку, а не сама строка
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Утвш
Рядовой
Сообщения: 84
Зарегистрирован: 02.12.2016{, 07:31}
Репутация: 1

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

#14

Сообщение Утвш » 06.11.2021{, 08:40}

Ур-р-р-а! Заработало! Я уж, честно говоря, потерял надежду. Еще раз спасибо.

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

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

#15

Сообщение AlexCrane » 06.11.2021{, 09:38}

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

Утвш
Рядовой
Сообщения: 84
Зарегистрирован: 02.12.2016{, 07:31}
Репутация: 1

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

#16

Сообщение Утвш » 07.11.2021{, 07:40}

Пытаюсь сделать часы-напоминалку даты дней рождения. Хочу использовать строковый массив с возможностью внесения изменений с Nextion. А при отключении питания, надо как-то сохранять.

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 64
Имя: Эдуард

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

#17

Сообщение edyapd » 09.11.2021{, 08:35}

И на какое количество дат хватает места?

Ответить

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