EEPROM

Добавления значения в память

Вопросы от новичков
Ответить
alges
Рядовой
Сообщения: 37
Зарегистрирован: 11.10.2015{, 00:57}
Репутация: 0

EEPROM

#1

Сообщение alges » 08.02.2019{, 07:46}

Пол дня просидел , ну не как , не могу сделать программу счётчика !
Задача заключается в том что- бы сохранять значения счётчика в энергонезависимую память
Есть этикеровочник хочу поставить счётчик на него общего количества этикеток !
Как можно сделать добавление значений к сохранённому значению в энергонезависимой памяти
Я слышал, что нельзя постоянно переписывать энергонезависимую память - значит надо сделать периодическое сохранение значений

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

EEPROM

#2

Сообщение Ingwar » 08.02.2019{, 08:27}

При включении/рестарте однократно считается значение из еепром и запишется как стартовое в счетчик.
СпойлерПоказать
Безымянный.png
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

baden
Рядовой
Сообщения: 2
Зарегистрирован: 02.02.2019{, 16:35}
Репутация: 0
Имя: Дмитрий

EEPROM

#3

Сообщение baden » 08.02.2019{, 08:29}

При таком подходе будьте готовы потерять некоторое количество значений, которые не успели записаться в еепром.
Например сохранять значение счетчика раз в пол часа в еепром. Если через 29 минут будет перезагрузка, то все насчитанные значения не будут сохранены. И о каком количестве этих этикеток идет речь? Можно ведь использовать внешнюю еепром.

aidar_i
Полковник
Сообщения: 3124
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

EEPROM

#4

Сообщение aidar_i » 08.02.2019{, 09:38}

Нужно записывать в ЕЕПРОМ при изменении значения, через штатный блок. Образец - переключение каналов в ESP RADIO, там сохраняется номер канала. А срок службы Вам хватит, если что перепаять память и все!

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

EEPROM

#5

Сообщение Sancho » 08.02.2019{, 11:24}

baden писал(а):
08.02.2019{, 08:29}
И о каком количестве этих этикеток идет речь? Можно ведь использовать внешнюю еепром.
Полностью согласен с обоими предложениями.
Вопрос количества этикеток - количество будет определять концепцию.
С внешней памятью - многими миллионами, а именно:
Создается две переменные с типом uint и long uint.
Первая отвечает за то, в какой ячейке(наборе байт)0,1,2... храним данные от второй, но имеет фикс адрес.
При достижении второй придуманного максимума 1млн, 500тыщ, 2 млн... инкременируем первую, второе с нуля.
При включении - сначала читаем адрес(и он-же множитель), потом из адреса - последнее значение.
Как итог -очень много с записью каждого изменения.
Можно ещё увеличить количество раз, за счёт использования раннее пользованых старших байт, сдвигая побайтно место расположения ячейки, но это явный перебор - только для подсчёта семечек или риса в пакетах :)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

alges
Рядовой
Сообщения: 37
Зарегистрирован: 11.10.2015{, 00:57}
Репутация: 0

EEPROM

#6

Сообщение alges » 08.02.2019{, 11:32}

Сейчас попробую по первому ответу - в день печатают от 3-5 т этикеток

Отправлено спустя 2 минуты 20 секунд:
На счёт количества записи хочу попробовать поставить таймер если ничего не происходит в течении 5 мин будет происходить запись

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 481
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 21
Откуда: Нижний Новгород
Имя: Евгений

EEPROM

#7

Сообщение eugeneb » 08.02.2019{, 11:57}

Добавьте в проект модуль RTC с батарейкой. Там в микросхеме часов есть несколько ячеек оперативной памяти. Вот там и держите текущее значение счётчика.

alges
Рядовой
Сообщения: 37
Зарегистрирован: 11.10.2015{, 00:57}
Репутация: 0

EEPROM

#8

Сообщение alges » 08.02.2019{, 19:44}

Большое спасибо сделал как посоветовал Ingwar Сделал дополнительный счётчик с пред установкой от стандартной энергонезависимой памяти и каждые 3 минуты после простоя он записывает новое значение в память , вот только пришлось всё усложнить с таймерами - оказалось нужен таймер при включении иначе не устанавливается пред установка в счетчик
Спасибо всем - не хватало только пинка под зад для решения задачи )))))

Ответить

Вернуться в «Начинающим»