реклама на сайте
подробности

 
 
> Сохранение переменной.
Jenya7
сообщение Dec 2 2014, 08:43
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Мне нужно сохранять переменную - текущий счетчик. Писать все время во флеш не вариант - долго и износ флэша. Я так понял что можно поместить переменную в неиницилизированную область RAM и при перезагрузке она сохранит свое значение.
я так понимаю static переменные сохранятся в .data секции?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 13)
ViKo
сообщение Dec 2 2014, 08:49
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



А когда питание отключится?
Глобальные переменные не портятся.
Локальные статические переменные не портятся.
Go to the top of the page
 
+Quote Post
Spider
сообщение Dec 2 2014, 08:51
Сообщение #3


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Что-то мне подсказывает, что RAM энергозависим и если снять питание то всё что там было - накроется.
Не раскрыт метод перезагрузки.

ViKo опередил sm.gif
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Dec 2 2014, 09:02
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



то есть, если рисет по вочдогу то данные сохраятся а если выключили питание то они пропали?
Go to the top of the page
 
+Quote Post
kovigor
сообщение Dec 2 2014, 09:11
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Jenya7 @ Dec 2 2014, 13:02) *
... а если выключили питание то они пропали?

При отключении питания - да, пропадут. Поставьте копеечную 24LC01 (02, ... , XX) и не мучайтесь ...
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Dec 2 2014, 09:22
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(kovigor @ Dec 2 2014, 15:11) *
При отключении питания - да, пропадут. Поставьте копеечную 24LC01 (02, ... , XX) и не мучайтесь ...

если освобожу I2C пины
Go to the top of the page
 
+Quote Post
kovigor
сообщение Dec 2 2014, 09:23
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Jenya7 @ Dec 2 2014, 13:22) *
если освобожу I2C пины

Можно написать чисто программную реализацию для любых ножек, там ничего сложного нет ...
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 2 2014, 09:26
Сообщение #8


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



А backup RAM разве в вашем МК нет? Батарейку присобачить, и почти всё...
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Dec 2 2014, 09:41
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(ViKo @ Dec 2 2014, 15:26) *
А backup RAM разве в вашем МК нет? Батарейку присобачить, и почти всё...

вобще то прибор работает от батарейки. вопрос что делать если батарейку заменят или она разрядится. мне просто один знакомый заморочил голову что есть энергонезависимая область RAM а я на радостях поверил.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 2 2014, 09:47
Сообщение #10


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Тогда нужно периодически перекидывать счетчик из backup-RAM во flash. А при сбросе (включении) прибора восстанавливать счетчик из flash.
Вопрос - когда счетчик сохранять во flash. Можно использовать супервизор на питание. Когда батарейку вынули или она просела, должно еще оставаться достаточно заряда в конденсаторе по питанию, чтобы хватило времени перекинуть...
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Dec 2 2014, 10:02
Сообщение #11


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(ViKo @ Dec 2 2014, 15:47) *
Тогда нужно периодически перекидывать счетчик из backup-RAM во flash. А при сбросе (включении) прибора восстанавливать счетчик из flash.
Вопрос - когда счетчик сохранять во flash. Можно использовать супервизор на питание. Когда батарейку вынули или она просела, должно еще оставаться достаточно заряда в конденсаторе по питанию, чтобы хватило времени перекинуть...

это неплохое решение, тем более что есть канал меряющий батарейку. я попробую. спасибо.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Dec 2 2014, 10:10
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(ViKo @ Dec 2 2014, 13:47) *
Можно использовать супервизор на питание.

Супервизор плюс ионистор или обычный конденсатор, в зависимости от того, сколько кушает МК в спящем режиме. Например, у меня самая дешевая Нокия, так вот, я заметил, что в ней время не сбивается, даже если вынуть аккумулятор на десяток (больше не проверял) секунд.
Но я бы лучше Serial EEPROM поставил ...
Go to the top of the page
 
+Quote Post
Spider
сообщение Dec 2 2014, 14:34
Сообщение #13


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Цитата(kovigor @ Dec 2 2014, 13:10) *
Супервизор плюс ионистор или обычный конденсатор, в зависимости от того, сколько кушает МК в спящем режиме. Например, у меня самая дешевая Нокия, так вот, я заметил, что в ней время не сбивается, даже если вынуть аккумулятор на десяток (больше не проверял) секунд.
Но я бы лучше Serial EEPROM поставил ...

Offtopic, но даже в самых дешевых нокиях были батарейки 3V таблеточки. Другое дело, что она умерла уже на втором году эксплуатации, но пот на минуту то её и хватает.

Цитата(ViKo @ Dec 2 2014, 12:47) *
Тогда нужно периодически перекидывать счетчик из backup-RAM во flash. А при сбросе (включении) прибора восстанавливать счетчик из flash.
Вопрос - когда счетчик сохранять во flash. Можно использовать супервизор на питание. Когда батарейку вынули или она просела, должно еще оставаться достаточно заряда в конденсаторе по питанию, чтобы хватило времени перекинуть...

Так и делал в одном из проектов. Был диод и конденсатор по более перед самым процом, и линия на внешнее прерываение через делитель (так было проще всего в конкретном применении). По прерыванию быстренько всё сохранял в EEPROM и шудаунился до лучших времён.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Dec 2 2014, 15:43
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Можно FRAM вкрутить, если I2C освободится.
10^14 обращений чтение/запись без задержек на запись с частотой до 1 МГц
http://www.cypress.com/?docID=48821
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 02:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01469 секунд с 7
ELECTRONIX ©2004-2016