EEPROM вопросы по созданию переменных
EEPROM вопросы по созданию переменных
Уважаемые знатоки как можно организовать запись значений в память каждый раз в новую переменную. Необходимо считывать к примеру температуру раз в час и записывать значение времени и температуры до заполнения eeprom. В качестве eeprom используется микросхема установленная в часах реального времени. После заполнения памяти в идеале былобы не плохо чтоб старые значения затирались новыми. Таким образом получился бы своеобразный архив. Именем переменной может быть дата и время. Можно конечно использовать карту памяти и писать в файл но интересней всё-таки попробовать прикрутить eeprom.
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
EEPROM вопросы по созданию переменных
fsergei70, Давайте начнем с простого. Вот блок для записи переменной int в выбранную ячейку еепром.
На вход дата подаете значение
На вход Адр - адрес от 0 до 511 (1 кБ на унке, данных Интежер влезит 512 шт)
На Ен подаете строб записи. На выходе всегда будет значение еппром, адрес которого задан на входе адр
поставив на вход адреса счетчик, с ограничением макс: 510 например, сможете писать новые данные в новую ячейку.
Вот так примерно:
На вход дата подаете значение
На вход Адр - адрес от 0 до 511 (1 кБ на унке, данных Интежер влезит 512 шт)
На Ен подаете строб записи. На выходе всегда будет значение еппром, адрес которого задан на входе адр
поставив на вход адреса счетчик, с ограничением макс: 510 например, сможете писать новые данные в новую ячейку.
Вот так примерно:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
EEPROM вопросы по созданию переменных
Спасибо за блок вечером попробую. С внешней eeprom ваш блок работать будет? Я хочу в микросхему памяти часов реального времени писать чтоб ардуинку не портить.
-
- Лейтенант
- Сообщения: 361
- Зарегистрирован: 07 сен 2015, 23:53
EEPROM вопросы по созданию переменных
То есть, этот блок одновременно является и блоком чтения?Сергей писал(а):На выходе всегда будет значение еппром, адрес которого задан на входе адр
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
EEPROM вопросы по созданию переменных
нет, это просто запись во внутреннею память МК. Команды записи/чтения из примеров.fsergei70 писал(а):С внешней eeprom ваш блок работать будет?
Тип переменной на входе, если надо будет, могу изменить. Лонг интежер или флоат надо писать по другому. Сделаю еще пару блоков под них.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Контактная информация:
EEPROM вопросы по созданию переменных
Нет, читайте внимательно пост Сергея, тем более, что в предыдущей теме о памяти часов Вами не говорилось.fsergei70 писал(а):С внешней eeprom ваш блок работать будет?
А вот работать с ней легко, 24C32 - простая память на 4 кб по I2C.
Но в каждом конкретном случае, что-бы не городить огород на плате, лучше все нужные, но громоздкие функции "спрятать" в блок.
В Вашем конкретном случае как видите сборку температуры/времени в байты?
Например, первые два- дата и час, третий( и четвёртый) - параметр(значение).
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
EEPROM вопросы по созданию переменных
Да. Да там чтения того... пару строк кода. Его и блоком называть смешно.OlegAn1962 писал(а):То есть, этот блок одновременно является и блоком чтения?
А если в редакторе блока убрать "*2"
,
то можно побайтно вычитать всю ЕЕПРОМ. В таком случае адрес будет от 0 до 1023.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Контактная информация:
EEPROM вопросы по созданию переменных
Дополню пост 6.
Создание блока для 24C32 не составляет труда, важно лишь понимание конечного результата - сколько информации должно записываться за один "проход" а потом читаться? Чтоб не городить кучу блоков и машинного кода в IDE....
Создание блока для 24C32 не составляет труда, важно лишь понимание конечного результата - сколько информации должно записываться за один "проход" а потом читаться? Чтоб не городить кучу блоков и машинного кода в IDE....
Последний раз редактировалось Sancho 01 авг 2017, 15:34, всего редактировалось 1 раз.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
EEPROM вопросы по созданию переменных
Да неплохо бы было float писать. Но если что можно значения умножить на 100 а после разделить. Ещё интересует если счётчик адреса сделать например до 255 и его значение в одном случае подавать на ваш блок а на второй такойже блок подавать значения с счетчика плю 256 можно будет писать сразу 2 переменных или этот блок только один в проекте использовать можно?
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Контактная информация:
EEPROM вопросы по созданию переменных
Вам нужна точность в два знака после запятой?fsergei70 писал(а):Да неплохо бы было float писать. Но если что можно значения умножить на 100 а после разделить
Какой диапазон параметра?
Какая нужна глубина стёка - число записей?
Вот и считайте байты, до 4К.
Последний раз редактировалось Sancho 01 авг 2017, 15:40, всего редактировалось 1 раз.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
EEPROM вопросы по созданию переменных
Если математикой с флоат заниматься не будете, то можно флоат писать (только не в этот блок ) , в противном случае лучше на сто умножать. Ардуина флоат плохо "пережевывает". Математические операции лучше делать с целочисленными переменными. Для этого может понадобится блок для запись лонг интежер сделать.fsergei70 писал(а):Да неплохо бы было float писать
В проекте можете несколько блоков ставить, только за адресами следите, что бы не "перетирали" друг друга.
У меня в последнем проекте штук 10 похожих блоков в еепром пишут по несколько значений. Отдельно хранятся UID бесконтактных карт, а к их номерам привязаны балансы (суммы денег). К каждой карте соответствует свой баланс, кредитный лимит. Так же в отдельной области еепром хранится остатки товаров, + настройки (крайние углы поворотов) сервоприводов в отдельной области еепром. Все работает, скоро доделаю, запишу полный обзор.
Кстати в нем же и пробовал флоат отнимать, делить... Не прокатило. Решил математику делать с целочисленными.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Контактная информация:
EEPROM вопросы по созданию переменных
Сергей, хватило 1К на всё? Сколько пользователей будет в конечном варианте?
Последний раз редактировалось Sancho 01 авг 2017, 16:13, всего редактировалось 1 раз.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
EEPROM вопросы по созданию переменных
Нужно мерить температуру в системе отопления подача и обратка значения до 90 градусов для примерного вычисления потребляемой тепловой энергии. Одного знака после запятой в принципе хватит. В качестве датчика расхода хочу использовать водомер с датчиком холаSancho писал(а):Какой диапазон параметра?
Последний раз редактировалось fsergei70 01 авг 2017, 15:56, всего редактировалось 1 раз.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Контактная информация:
EEPROM вопросы по созданию переменных
fsergei70, Какая конечная цель устройства - логгер?
Добавлено (01.08.2017, 15:58)
---------------------------------------------
А если вычислять сразу и писать? Или нужна температура для "предъяв"
Расход примерно стабилен по времени?
Вы пытаетесь сделать дублирующий теплосчётчик?
Как пассатижами тянем инфу для ТЗ...
Добавлено (01.08.2017, 15:58)
---------------------------------------------
Понято.fsergei70 писал(а):Нужно мерить температуру в системе отопления подача и обратка значения до 90 градусов для примерного вычисления потребляемой тепловой энергии. Одного знака после запятой в принципе хватит. В качестве датчика расхода хочу использовать водомер с датчиком хода.
А если вычислять сразу и писать? Или нужна температура для "предъяв"
Расход примерно стабилен по времени?
Вы пытаетесь сделать дублирующий теплосчётчик?
Как пассатижами тянем инфу для ТЗ...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
EEPROM вопросы по созданию переменных
нет конечно . Я на меге2056 сделал. Там места на 100 карточек, + 100 балансов, + 100 кред. лимитов (это все числа лонг интежер по 4 байта) + на пять товаров (в каждом цена закупки, наценка, остаток) + на 5 серв, по 3 интежер (это по два угла и задержка на каждый привод). Как то так...Sancho писал(а):Сергей, хватило 1К на всё?
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Контактная информация:
EEPROM вопросы по созданию переменных
Ого объём товарооборота....Сергей писал(а):Там места на 100 карточек, + 100 балансов, + 100 кред. лимитов...........
А почему не использовали внешнюю память?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
EEPROM вопросы по созданию переменных
Та все в меге поместилось . Отчеты по продажам пишутся в КаСкаде по каждому товару в отдельный файл (неудобно, но пока не додумался как лучше). С SD картой позже попробую, в наличии не хочет писать, а новых нету. Но в любом случае он постоянно совершенствуется.Sancho писал(а):А почему не использовали внешнюю память?
Очень хорошо что при перепрошивке ЕЕПРОМ не стирается. Так, в работающем автомате можно изменить прошивку не угробив финансовую часть системы. Чужие деньги все таки.
fsergei70, значит требуется сохранять 2 переменных integer это температуры, и одну расход воды. При этом необходимо их "связать", как в моем проекте к картам привязаны балансы..., что бы именно над каждой такой группой переменных проводить расчет. Правильно?
Хорошее решение, если для "предъявы" не надо отдельно хранить температуры, то лучше сохранять результат вычислений. Так больше влезет.Sancho писал(а):А если вычислять сразу и писать? Или нужна температура для "предъяв"
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Контактная информация:
EEPROM вопросы по созданию переменных
Пришла мысль по внешней памяти типа 24С32 EEPROM, которая часто есть в комплекте с часами DS3231, ветку в "железе" создать.
Пойду, попробую пару тестовых блоков сделать....
Пойду, попробую пару тестовых блоков сделать....
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
EEPROM вопросы по созданию переменных
Да какие могут быть предъявы ардуино ведь не коммерческий учёт. Пытаюсь сделать аналог теплосчётчик больше ради интереса ну и прикрутить к нему запись измеряемых параметров в память, что было все как у настоящего. Ну и для контроля циркуляции теплоносителя. Если разница температур стала большая значит пора травить воздух из системы. В проекте что делаю самое главное это приобретённый опыт. Возможность писать значения не в одну и туже ячейку памяти очень пригодится и для других проектов.Sancho писал(а):А если вычислять сразу и писать? Или нужна температура для "предъяв" Расход примерно стабилен по времени?
Вы пытаетесь сделать дублирующий теплосчётчик?
Как пассатижами тянем инфу для ТЗ...
Добавлено (01.08.2017, 17:25)
---------------------------------------------
Можно разницу температур, и расход плюс дату с временем писать или в оду из ячеек общее количество записей нарастающим итогом чтоб знать сколько времени всего прошло при условии что питание не отключалось. если например запись велась раз в час, и зная дату и время первой записи можно будет пересчитать какие параметры какому времени и дате соответствуют.Сергей писал(а):значит требуется сохранять 2 переменных integer это температуры, и одну расход воды. При этом необходимо их "связать", как в моем проекте к картам привязаны балансы..., что бы именно над каждой такой группой переменных проводить расчет.
Последний раз редактировалось fsergei70 01 авг 2017, 16:55, всего редактировалось 1 раз.
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
EEPROM вопросы по созданию переменных
fsergei70, напишите сколько переменных и каких типов Вы хотите сохранить, поименно. Потом продолжим. Я насчитал 7 переменных.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость