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

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

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

#1

Сообщение Igor » 07.06.2022{, 14:42}

Опять я, накидал и проверил простейший блок для записи в 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
(24.79 КБ) 51 скачивание
Read_EEPROM_(Code_-_Basic).ubi
(24.76 КБ) 48 скачиваний

Igor
Рядовой
Сообщения: 55
Зарегистрирован: 28.11.2020{, 06:20}
Репутация: 3
Имя: test

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

#2

Сообщение Igor » 16.06.2022{, 14:30}

Ребята, теперь Возник вопрос - как записать данные в еепром но только при выходе из меню?
То есть я захожу в меню, меняю настройки, а при выходе из меню они должны сохраниться.
только при выходе иначе память сдохнет.
выше я разместил блоки для датчика температуры и для чтения и сохранения в еепром, но как их подружить со штатным блоком меню не могу понять

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

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

#3

Сообщение Dryundel » 16.06.2022{, 17:26}

Igor писал(а):
07.06.2022{, 14:42}
С штатным блоком какие то проблемы -- блок записи создает переменную, а блок чтения ее не видит.
Никогда не было и вот опять.
Может с проектом проблема? Может с ним разобраться стоит?
Igor писал(а):
07.06.2022{, 14:42}
Опять я, накидал и проверил простейший блок для записи в EEPROM и чтения.
А надо ли изобретать велосипед? Штатные блоки вроде прекрасно работали.
Igor писал(а):
07.06.2022{, 14:42}
В штатном блоке чтения нет возможности читать по условию -- зачем читать постоянно одно и то же в каждом цикле? Я сделал вход для блока чтения.
А вот это вообще лишнее. Вы когда прочитали из EEPROM, куда это значение записали? В отдельную переменную? Добавили лишнюю переменную? Так эта переменная так же будет в каждом цикле читаться. А какая разница откуда значение читать из программной переменной или из EEPROM? А вот дополнительная переменная займет место. Какой в этом смысл?
Igor писал(а):
16.06.2022{, 14:30}
Ребята, теперь Возник вопрос - как записать данные в еепром но только при выходе из меню?
То есть я захожу в меню, меняю настройки, а при выходе из меню они должны сохраниться.
только при выходе иначе память сдохнет.
выше я разместил блоки для датчика температуры и для чтения и сохранения в еепром, но как их подружить со штатным блоком меню не могу понять
Что должно сохраниться в EEPROM? Настройки меню или данные с датчика?
Если настройки меню, то в настройках блока "Меню" этот момент учтен и есть соответствующие переключатели.
Если же данные с датчика, то возникает вопрос, зачем их сохранять при выходе из меню? Это же датчик.

Igor
Рядовой
Сообщения: 55
Зарегистрирован: 28.11.2020{, 06:20}
Репутация: 3
Имя: test

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

#4

Сообщение Igor » 16.06.2022{, 17:57}

Только настройки
Простой пример который работает
467.flp
(146.65 КБ) 54 скачивания
Только сначала плату 2....записали ....а потом заливаем плату 1 и читаем
почему то в ФЛ это не работоет(((

Igor
Рядовой
Сообщения: 55
Зарегистрирован: 28.11.2020{, 06:20}
Репутация: 3
Имя: test

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

#5

Сообщение Igor » 16.06.2022{, 18:01}

Dryundel писал(а):
16.06.2022{, 17:26}
Если настройки меню, то в настройках блока этот момент учтен и есть соответствующие переключатели.
Да именно настройки в меню но неужели так будет в каждом цикле?

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

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

#6

Сообщение Dryundel » 16.06.2022{, 18:17}

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

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

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

Отправлено спустя 2 минуты 44 секунды:
Igor писал(а):
16.06.2022{, 17:57}
Только сначала плату 2....записали ....а потом заливаем плату 1 и читаем
почему то в ФЛ это не работоет(((
Вот так должно работать.
467(NEW).flp
(140.9 КБ) 55 скачиваний
Проверьте еще тип контроллера. У Вас NANO случайно не с Old Bootloader?

Igor
Рядовой
Сообщения: 55
Зарегистрирован: 28.11.2020{, 06:20}
Репутация: 3
Имя: test

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

#7

Сообщение Igor » 17.06.2022{, 14:06}

Dryundel писал(а):
16.06.2022{, 18:52}
У Вас NANO случайно не с Old Bootloader?
Да, Old Bootloader А что загрузчик влияет на работу программы? Ну попробую переписать загрузчик. Вроде optiboot читал получше будет

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

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

#8

Сообщение Dryundel » 17.06.2022{, 14:23}

Igor писал(а):
17.06.2022{, 14:06}
Да, Old Bootloader А что загрузчик влияет на работу программы? Ну попробую переписать загрузчик. Вроде optiboot читал получше будет
В данном случае разницы нет. Просто у Вас проект сделан для NANO и в NANO Old Bootloader он может не загрузиться.

Igor
Рядовой
Сообщения: 55
Зарегистрирован: 28.11.2020{, 06:20}
Репутация: 3
Имя: test

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

#9

Сообщение Igor » 17.06.2022{, 15:28}

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

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

Ответить

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