EEPROM вопросы по созданию переменных

Использование внешней и внутренней EEPROM, а так-же SD card
Аватара пользователя
fsergei70
Капитан
Сообщения: 726
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 49
Откуда: Ессентуки-Кисловодск
Имя: Сергей

EEPROM вопросы по созданию переменных

#21

Сообщение fsergei70 » 01.08.2017{, 17:43}

Сергей писал(а):напишите сколько переменных и каких типов Вы хотите сохранить, поименно. Потом продолжим. Я насчитал 7 переменных.
Две измеряемых переменных integer плюс время ( только Часы) и дату если дату и время сложно сделать то можно писать количество записей и от известной даты времени и периодичности делать пересчёт.
Последний раз редактировалось fsergei70 01.08.2017{, 17:47}, всего редактировалось 1 раз.

Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31.08.2015{, 15:06}
Репутация: 6
Имя: Сергей
Контактная информация:

EEPROM вопросы по созданию переменных

#22

Сообщение Сергей » 01.08.2017{, 17:50}

fsergei70, не, дайте правильно ТЗ. Сколько переменных надо записать и каких типов (можно разных одновременно)?
Я "не знаю" что вы с этим блоком будете делать. И на данном этапе не хочу углублятся. Поэтому и прошу четко дать ТЗ. Время, дату температуру в ЕЕПРОМ записать нельзя. Записать можно переменную(нные). Что в этих переменных будет храниться это другой вопрос.
Поэтому определитесь что Вам нужно сохранить и напишите. Сколько там влезет данных это потом посмотрите и решите для себя от чего отказаться или что изменить, это называется - оптимизация. На данном этапе я могу Вам помочь сделать блок, который Вы сможете посмотреть и понять как код пишется.

Аватара пользователя
Sancho
Полковник
Сообщения: 4028
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 577
Откуда: Ярославль.
Имя: Александр
Контактная информация:

EEPROM вопросы по созданию переменных

#23

Сообщение Sancho » 01.08.2017{, 17:54}

Сергей, Доставайте вторые пассатижи...
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
fsergei70
Капитан
Сообщения: 726
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 49
Откуда: Ессентуки-Кисловодск
Имя: Сергей

EEPROM вопросы по созданию переменных

#24

Сообщение fsergei70 » 01.08.2017{, 18:22}

5 иinteger вот проект.
Проект не прикрепляется потому что весит 2 мб, вот скриншот
Вложения
9024196.jpg
Последний раз редактировалось fsergei70 01.08.2017{, 18:28}, всего редактировалось 1 раз.

Аватара пользователя
fsergei70
Капитан
Сообщения: 726
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 49
Откуда: Ессентуки-Кисловодск
Имя: Сергей

EEPROM вопросы по созданию переменных

#25

Сообщение fsergei70 » 01.08.2017{, 18:30}

Проект в архиве
Вложения
___001.rar
(73.65 КБ) 62 скачивания

Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31.08.2015{, 15:06}
Репутация: 6
Имя: Сергей
Контактная информация:

EEPROM вопросы по созданию переменных

#26

Сообщение Сергей » 01.08.2017{, 21:18}

пробуйте. Результат жду, сам это делаю для общего развития.
А че не используете готовые блоки флпрог для считывания датчиков?
Вложения
____-CODE-.ubi
(73.83 КБ) 61 скачивание

Аватара пользователя
Sancho
Полковник
Сообщения: 4028
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 577
Откуда: Ярославль.
Имя: Александр
Контактная информация:

EEPROM вопросы по созданию переменных

#27

Сообщение Sancho » 02.08.2017{, 16:30}

Самое сложное в задачах с памятью - определится с алгоритмом(методом) восстановления информации о ПОСЛЕДНЕМ АДРЕСЕ при доступе к памяти при записи архивов для избежания затирания.
Лучшим, с моей точки зрения, является запись этого самого адреса в спец ячейку на последнем выдохе(заряде) ионистора после обработке сигнала "хана питанию"
При инициализации читаем, пишем дальше....
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
fsergei70
Капитан
Сообщения: 726
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 49
Откуда: Ессентуки-Кисловодск
Имя: Сергей

EEPROM вопросы по созданию переменных

#28

Сообщение fsergei70 » 02.08.2017{, 16:42}

Sancho писал(а):Самое сложное в задачах с памятью - определится с алгоритмом(методом) восстановления информации о ПОСЛЕДНЕМ АДРЕСЕ при доступе к памяти при записи архивов для избежания затирания.Лучшим, с моей точки зрения, является запись этого самого адреса в спец ячейку на последнем выдохе(заряде) ионистора после обработке сигнала "хана питанию"
При инициализации читаем, пишем дальше....
Это как раз не очень сложно, какой адрес был последним подан на блок тот и надо сохранять. А после включения считывать и подавать на вход счетчика как начальное значение. Сложнее мне кажется это запись нескольких переменных одновременно,  ведь процедура записи в память занимает много времени. Ну и заставить все это работать с внешней памятью. Вообще блок мне очень понравился, его можно использовать во многих местах, например изменять Настройки в проектах с modbus для работы мастера с несколькими слейвами.
Последний раз редактировалось fsergei70 02.08.2017{, 16:53}, всего редактировалось 1 раз.

Аватара пользователя
Sancho
Полковник
Сообщения: 4028
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 577
Откуда: Ярославль.
Имя: Александр
Контактная информация:

EEPROM вопросы по созданию переменных

#29

Сообщение Sancho » 02.08.2017{, 17:04}

fsergei70 писал(а):какой адрес был последним подан на блок тот и надо сохранять
Если его каждый раз при записи перезаписвать, и если это будет происходить часто - протрём дырку.
В Вашем случае, как я понял, раз в час - без проблем.
Сейчас очень плотно подсел на 24С32(64), в плане понятия работы с ней и создания блока. После вчерашних бесед.
Вопросы, что всплывают: запись г,мм,дд,чч; один чистый uint, три 0-511 - температуру можно считать с 50С, правда?, один 0-31. пойдёт?
500 записей на память платы часов.

Добавлено (02.08.2017, 17:04)
---------------------------------------------
fsergei70 писал(а):ведь процедура записи в память занимает много времени
максимум 10 мс - это много?
Последний раз редактировалось Sancho 02.08.2017{, 17:07}, всего редактировалось 1 раз.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
fsergei70
Капитан
Сообщения: 726
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 49
Откуда: Ессентуки-Кисловодск
Имя: Сергей

EEPROM вопросы по созданию переменных

#30

Сообщение fsergei70 » 02.08.2017{, 17:08}

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

Аватара пользователя
Sancho
Полковник
Сообщения: 4028
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 577
Откуда: Ярославль.
Имя: Александр
Контактная информация:

EEPROM вопросы по созданию переменных

#31

Сообщение Sancho » 02.08.2017{, 17:16}

fsergei70 писал(а):Ну адрес каждый час писать не надо ведь а только при пропадании питания. Если питать ардуинку вольт от 9 и подать напругу через делитель на вход то сигнал на входе изменится раньше чем ардуино отрубиться, времени должно хватить чтоб сохранить значение.
Отлично, мой ход мыслей Вы поняли,
как насчёт диапазона записываемых параметров?
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
fsergei70
Капитан
Сообщения: 726
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 49
Откуда: Ессентуки-Кисловодск
Имя: Сергей

EEPROM вопросы по созданию переменных

#32

Сообщение fsergei70 » 02.08.2017{, 17:16}

Год, месяц, число, и часы можно в byte писать ну а температуру и расход в int, как Сергей в своём блоке сделал тремя постами выше

Аватара пользователя
Sancho
Полковник
Сообщения: 4028
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 577
Откуда: Ярославль.
Имя: Александр
Контактная информация:

EEPROM вопросы по созданию переменных

#33

Сообщение Sancho » 02.08.2017{, 17:30}

Хотя это не принципиально - записываться будет восемь байт - распределить можно как душе угодно.
Запись лучше вести блоками по 2, 4, 8, 16 или 32 байта.

Добавлено (02.08.2017, 17:20)
---------------------------------------------
год     -1 бит
месяц - 5 бит
день   - 5 бит
час     - 5 бит
ИТОГО 2 байта!

Добавлено (02.08.2017, 17:23)
---------------------------------------------
Год вообще не важно, хотя...
Если взять 24С256, да ещё восемь штук.....

Добавлено (02.08.2017, 17:30)
---------------------------------------------
Думаю, скоро Сергей тоже скоро заинтересуется внешней памятью за смешные деньги...
Последний раз редактировалось Sancho 02.08.2017{, 17:27}, всего редактировалось 1 раз.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
fsergei70
Капитан
Сообщения: 726
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 49
Откуда: Ессентуки-Кисловодск
Имя: Сергей

EEPROM вопросы по созданию переменных

#34

Сообщение fsergei70 » 02.08.2017{, 17:32}

Да конечно лучше блоками. В моем случае за глаза хватает блока в 8 байт, но подойдёт допустим блок в 4 байта просто придётся 2 блока использовать и адресное пространство попала делить. Еслиб в стандартном блоке был вход установки адреса то и изобретать ничего не нужно было бы.
Последний раз редактировалось fsergei70 02.08.2017{, 17:37}, всего редактировалось 1 раз.

Аватара пользователя
Sancho
Полковник
Сообщения: 4028
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 577
Откуда: Ярославль.
Имя: Александр
Контактная информация:

EEPROM вопросы по созданию переменных

#35

Сообщение Sancho » 02.08.2017{, 17:40}

fsergei70 писал(а):Да конечно лучше блоками. В моем случае за глаза хватает блока в 8 байт, но подойдёт допустим блок в 4 байта просто придётся 2 блока использовать и адресное пространство попала делить. Еслиб в стандартном блоке был вход установки адреса то и изобретать ничего не нужно было бы.
Написанное мной
Sancho писал(а):Запись лучше вести блоками по 2, 4, 8, 16 или 32 байта.
относится к оптимальной работе с ВНЕШНЕЙ памятью.
Можно, конечно-же, и с одним байтом работать
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31.08.2015{, 15:06}
Репутация: 6
Имя: Сергей
Контактная информация:

EEPROM вопросы по созданию переменных

#36

Сообщение Сергей » 02.08.2017{, 23:49}

Парни, я пока от вашей темы отвлекусь. Завтра на работу на неделю. Буду свой автомат доделывать и запускать.
fsergei70 писал(а):Еслиб в стандартном блоке был вход установки адреса то и изобретать ничего не нужно было бы.
это точно

Аватара пользователя
Sancho
Полковник
Сообщения: 4028
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 577
Откуда: Ярославль.
Имя: Александр
Контактная информация:

EEPROM вопросы по созданию переменных

#37

Сообщение Sancho » 03.08.2017{, 17:54}

Наваял тестовые, пробуем
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Аватара пользователя
fsergei70
Капитан
Сообщения: 726
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 49
Откуда: Ессентуки-Кисловодск
Имя: Сергей

EEPROM вопросы по созданию переменных

#38

Сообщение fsergei70 » 03.08.2017{, 18:23}

Огромное спасибо, буду пробовать.

Ответить

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