Однократно считать с EEPROM

Использование внешней и внутренней EEPROM, а так-же SD card
Ответить
kbplug
Рядовой
Сообщения: 61
Зарегистрирован: 10 мар 2017, 09:54

Однократно считать с EEPROM

Сообщение kbplug »

Добрый день, подскажите пожалуйста как правильно однократно при включении питания ардуино считать данные из EEPROM и присвоить их переменным, я делаю вот так но не уверен что это оптимально:

Изображение
Аватара пользователя
slavas
Лейтенант
Сообщения: 596
Зарегистрирован: 14 сен 2015, 22:29
Откуда: Санкт-Петербург

Однократно считать с EEPROM

Сообщение slavas »

да
kbplug
Рядовой
Сообщения: 61
Зарегистрирован: 10 мар 2017, 09:54

Однократно считать с EEPROM

Сообщение kbplug »

slavas, Спасибо.
Аватара пользователя
jonik22sm
Капитан
Сообщения: 791
Зарегистрирован: 20 ноя 2015, 11:28
Откуда: Краснодар
Имя: Евгений
Благодарил (а): 1 раз
Поблагодарили: 7 раз
Контактная информация:

Однократно считать с EEPROM

Сообщение jonik22sm »

Лучше всего делать так
1) создаёш плату №1 туда кидаешь чтение из EEPROM все которые тебе нужны


2) когда открываешь в arduino IDE плату №1 переносишь в область void setup

У вас нет необходимых прав для просмотра вложений в этом сообщении.
Можно сделать ВСЁ. Было бы желание.
Аватара пользователя
slavas
Лейтенант
Сообщения: 596
Зарегистрирован: 14 сен 2015, 22:29
Откуда: Санкт-Петербург

Однократно считать с EEPROM

Сообщение slavas »

jonik22sm, может асcемблер проще?
Аватара пользователя
jonik22sm
Капитан
Сообщения: 791
Зарегистрирован: 20 ноя 2015, 11:28
Откуда: Краснодар
Имя: Евгений
Благодарил (а): 1 раз
Поблагодарили: 7 раз
Контактная информация:

Однократно считать с EEPROM

Сообщение jonik22sm »

я когда на работе собирал расходомеры клея то меня только это спасло
а через триггер подглючивало

Добавлено (20.04.2017, 11:45)
---------------------------------------------
зато 100% прочитается 1 раз
Можно сделать ВСЁ. Было бы желание.
kbplug
Рядовой
Сообщения: 61
Зарегистрирован: 10 мар 2017, 09:54

Однократно считать с EEPROM

Сообщение kbplug »

jonik22sm, Спасибо буду иметь ввиду.
Аватара пользователя
Oleg_UA
Сержант
Сообщения: 115
Зарегистрирован: 07 янв 2017, 23:30
Откуда: Днепр
Имя: Олег

Однократно считать с EEPROM

Сообщение Oleg_UA »

Можно ещё через условие выполнения платы, главное запись переменной START размещать последней (не раньше платы с чтением)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Oleg_UA 22 апр 2017, 12:33, всего редактировалось 1 раз.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 3 раза
Контактная информация:

Однократно считать с EEPROM

Сообщение Sancho »

jonik22sm писал(а):Лучше всего делать так
1) создаёш плату №1 туда кидаешь чтение из EEPROM все которые тебе нужны
2) когда открываешь в arduino IDE плату №1 переносишь в область void setup
Правильное, самое правильное, решение - в void setup
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
kbplug
Рядовой
Сообщения: 61
Зарегистрирован: 10 мар 2017, 09:54

Однократно считать с EEPROM

Сообщение kbplug »

Так может тогда есть смысл попросить автора интегрировать данное решение в FLProg.
Скажем, можна добавить галочку в свойства платы "запускать однократно".
OlegAn1962
Лейтенант
Сообщения: 361
Зарегистрирован: 07 сен 2015, 23:53

Однократно считать с EEPROM

Сообщение OlegAn1962 »

Здесь три решения этого вопроса, нужен еще четвертый?
kbplug
Рядовой
Сообщения: 61
Зарегистрирован: 10 мар 2017, 09:54

Однократно считать с EEPROM

Сообщение kbplug »

Нужен один но он должен быть правильный и не должен ни при каких обстоятельствах вызывать ошибок. И если самое правильное, решение - в void setup то хотелось бы чтобы это можно было сделать из FLProg.
Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

Однократно считать с EEPROM

Сообщение support »

В первом посту вы почти правильно описали решение.
На первой плате делаете такую схему

У вас нет необходимых прав для просмотра вложений в этом сообщении.
Автор программы FLProg.
kbplug
Рядовой
Сообщения: 61
Зарегистрирован: 10 мар 2017, 09:54

Однократно считать с EEPROM

Сообщение kbplug »

support, Спасибо за ответ.
Аватара пользователя
jonik22sm
Капитан
Сообщения: 791
Зарегистрирован: 20 ноя 2015, 11:28
Откуда: Краснодар
Имя: Евгений
Благодарил (а): 1 раз
Поблагодарили: 7 раз
Контактная информация:

Однократно считать с EEPROM

Сообщение jonik22sm »

да но он в любом случае читается каждый раз просто выполняется один раз
а если в void setup то он и читается только при загрузке и ВСЁ больше не участвует в коде

Добавлено (21.04.2017, 21:44)
---------------------------------------------
Или я неправ!?

Добавлено (21.04.2017, 21:44)
---------------------------------------------
Мне очень помогло в расходомере
Можно сделать ВСЁ. Было бы желание.
Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

Однократно считать с EEPROM

Сообщение support »

Нет не правы. Вот образец кода который получается

  if (_trgrt1) {
    _gtv1 = (readIntegerFromEEPROM(0, 0, 0x0));
  }

Читается только если  _trgrt1 = 1. А она равнв 1 один раз при пуске контроллера.  В остальных случаях код чтения пропускается
Автор программы FLProg.
Аватара пользователя
Oleg_UA
Сержант
Сообщения: 115
Зарегистрирован: 07 янв 2017, 23:30
Откуда: Днепр
Имя: Олег

Однократно считать с EEPROM

Сообщение Oleg_UA »

support писал(а):Читается только если  _trgrt1 = 1. А она равнв 1 один раз при пуске контроллера.  В остальных случаях код чтения пропускается
С использованием триггера и нескольких блоков чтения из памяти - программа создаёт столько условий  if (_trgrt2) сколько было создано блоков чтения и две переменные, но  когда создать условие выполнения платы тогда создаётся только одно условие if (var1 == 0) и нужна только одна переменная.
Но в любом случае сделать возможность переноса в void setup() было-бы очень полезно.

//Плата:с триггером

if (1) { if (_trgrt2I) { _trgrt2 = 0;} else {_trgrt2 = 1; _trgrt2I = 1;} } else {_trgrt2 = 0; _trgrt2I = 0;}; 
 if (_trgrt2) {
var2 = (readIntegerFromEEPROM(2, 0, 0x50));
}
if (_trgrt2) {
var3 = (readIntegerFromEEPROM(2, 0, 0x50));
}
if (_trgrt2) {
var4 = (readIntegerFromEEPROM(2, 0, 0x50));
}

//Плата:с условием

if (var1 == 0) {
var2 = (readIntegerFromEEPROM(2, 0, 0x50));
var3 = (readIntegerFromEEPROM(2, 0, 0x50));
var4 = (readIntegerFromEEPROM(2, 0, 0x50));
var1 = 1;
}
Последний раз редактировалось Oleg_UA 22 апр 2017, 13:01, всего редактировалось 1 раз.
Ответить

Вернуться в «Устройства памяти»

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

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