Проблемы со штатными блоками EEPROM

Вопросы по встроенным блокам
Ответить
Igor
Рядовой
Сообщения: 55
Зарегистрирован: 28 ноя 2020, 06:20
Имя: test

Проблемы со штатными блоками EEPROM

Сообщение Igor »

Опять я, накидал и проверил простейший блок для записи в EEPROM и чтения.
С штатным блоком какие то проблемы -- блок записи создает переменную, а блок чтения ее не видит.
Здесь же мы явно задаем переменную. Не забываем использовать Rtrig чтобы запись шла только при каком то событии, а никак не в каждом цикле.
В штатном блоке чтения нет возможности читать по условию -- зачем читать постоянно одно и то же в каждом цикле? Я сделал вход для блока чтения.
Потом, первый набросок блоков сделан для переменной типа byte
Если использовать фукции
get()
EEPROM.get(address, data)
Считывает из EEPROM Arduino любой тип данных по адресу address. При этом данные (data) могут быть любого типа, например, int или float.
put()
EEPROM.put(address, data)
Записывает в EEPROM Arduino любой тип данных по адресу address. Функция записывает в ячейку только отличающиеся данные.
То есть можно работать с любыми типами данных
И даже с массивами
EEPROM[]
EEPROM[address]
Позволяет обращаться с байтами EEPROM Arduino как с массивом. Байты можно считывать и записывать.
А еще интересно разобраться в работе со структурами EEPROM
Save_EEPROM_(Code_-_Basic).ubi
Read_EEPROM_(Code_-_Basic).ubi
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Igor
Рядовой
Сообщения: 55
Зарегистрирован: 28 ноя 2020, 06:20
Имя: test

Проблемы со штатными блоками EEPROM

Сообщение Igor »

Ребята, теперь Возник вопрос - как записать данные в еепром но только при выходе из меню?
То есть я захожу в меню, меняю настройки, а при выходе из меню они должны сохраниться.
только при выходе иначе память сдохнет.
выше я разместил блоки для датчика температуры и для чтения и сохранения в еепром, но как их подружить со штатным блоком меню не могу понять
Аватара пользователя
Dryundel
Полковник
Сообщения: 2420
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 24 раза

Сканироваие 1-Wire. Массив DS18B20

Сообщение Dryundel »

Igor писал(а): 07 июн 2022, 14:42 С штатным блоком какие то проблемы -- блок записи создает переменную, а блок чтения ее не видит.
Никогда не было и вот опять.
Может с проектом проблема? Может с ним разобраться стоит?
Igor писал(а): 07 июн 2022, 14:42 Опять я, накидал и проверил простейший блок для записи в EEPROM и чтения.
А надо ли изобретать велосипед? Штатные блоки вроде прекрасно работали.
Igor писал(а): 07 июн 2022, 14:42 В штатном блоке чтения нет возможности читать по условию -- зачем читать постоянно одно и то же в каждом цикле? Я сделал вход для блока чтения.
А вот это вообще лишнее. Вы когда прочитали из EEPROM, куда это значение записали? В отдельную переменную? Добавили лишнюю переменную? Так эта переменная так же будет в каждом цикле читаться. А какая разница откуда значение читать из программной переменной или из EEPROM? А вот дополнительная переменная займет место. Какой в этом смысл?
Igor писал(а): 16 июн 2022, 14:30 Ребята, теперь Возник вопрос - как записать данные в еепром но только при выходе из меню?
То есть я захожу в меню, меняю настройки, а при выходе из меню они должны сохраниться.
только при выходе иначе память сдохнет.
выше я разместил блоки для датчика температуры и для чтения и сохранения в еепром, но как их подружить со штатным блоком меню не могу понять
Что должно сохраниться в EEPROM? Настройки меню или данные с датчика?
Если настройки меню, то в настройках блока "Меню" этот момент учтен и есть соответствующие переключатели.
Если же данные с датчика, то возникает вопрос, зачем их сохранять при выходе из меню? Это же датчик.
Igor
Рядовой
Сообщения: 55
Зарегистрирован: 28 ноя 2020, 06:20
Имя: test

Сканироваие 1-Wire. Массив DS18B20

Сообщение Igor »

Только настройки
Простой пример который работает
467.flp
Только сначала плату 2....записали ....а потом заливаем плату 1 и читаем
почему то в ФЛ это не работоет(((
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Igor
Рядовой
Сообщения: 55
Зарегистрирован: 28 ноя 2020, 06:20
Имя: test

Сканироваие 1-Wire. Массив DS18B20

Сообщение Igor »

Dryundel писал(а): 16 июн 2022, 17:26 Если настройки меню, то в настройках блока этот момент учтен и есть соответствующие переключатели.
Да именно настройки в меню но неужели так будет в каждом цикле?
Аватара пользователя
Dryundel
Полковник
Сообщения: 2420
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 24 раза

Проблемы со штатными блоками EEPROM

Сообщение Dryundel »

Igor писал(а): 16 июн 2022, 17:57 Только настройки
Igor писал(а): 16 июн 2022, 18:01 Да именно настройки в меню но неужели так будет в каждом цикле?
В блоке "Меню" в "Пункте меню" есть чекбокс "сохранять в EEPROM"
А во вкладке "Управление меню" есть переключатель "Запись в EEPROM" >> "При выходе из меню"

Этого не достаточно?

Отправлено спустя 2 минуты 28 секунд:
Igor писал(а): 16 июн 2022, 17:57 Простой пример который работает
467.flp
Поздравляю. Только delay(500) удалите из вашего блока.

Отправлено спустя 2 минуты 44 секунды:
Igor писал(а): 16 июн 2022, 17:57 Только сначала плату 2....записали ....а потом заливаем плату 1 и читаем
почему то в ФЛ это не работоет(((
Вот так должно работать.
467(NEW).flp
Проверьте еще тип контроллера. У Вас NANO случайно не с Old Bootloader?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Igor
Рядовой
Сообщения: 55
Зарегистрирован: 28 ноя 2020, 06:20
Имя: test

Проблемы со штатными блоками EEPROM

Сообщение Igor »

Dryundel писал(а): 16 июн 2022, 18:52 У Вас NANO случайно не с Old Bootloader?
Да, Old Bootloader А что загрузчик влияет на работу программы? Ну попробую переписать загрузчик. Вроде optiboot читал получше будет
Аватара пользователя
Dryundel
Полковник
Сообщения: 2420
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 24 раза

Проблемы со штатными блоками EEPROM

Сообщение Dryundel »

Igor писал(а): 17 июн 2022, 14:06 Да, Old Bootloader А что загрузчик влияет на работу программы? Ну попробую переписать загрузчик. Вроде optiboot читал получше будет
В данном случае разницы нет. Просто у Вас проект сделан для NANO и в NANO Old Bootloader он может не загрузиться.
Igor
Рядовой
Сообщения: 55
Зарегистрирован: 28 ноя 2020, 06:20
Имя: test

Проблемы со штатными блоками EEPROM

Сообщение Igor »

Dryundel писал(а): 17 июн 2022, 14:23 Просто у Вас проект сделан для NANO и в NANO Old Bootloader он может не загрузиться.
Так загружается же, только работает не так как хотелось бы, про сохранение меню в память - ладно проверю, просто не хотелось убить память

Отправлено спустя 3 часа 21 минуту 58 секунд:
Спасибо с еепром в меню все получилось! только не понятно в какие ячейки пишется данные? в одну ту же или в разные?
Ответить

Вернуться в «Штатные блоки»

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

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