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

 
 
> Отсчет времени и сброс микроконтроллера
GSK
сообщение Oct 23 2006, 06:11
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 157
Регистрация: 1-03-06
Пользователь №: 14 835



Как решить следующую задачку:

Таймер микроконтроллера вырабатывает прерывания через определенные промежутки времени. По этому прирыванию увеличиваеться значение переменной. При провале питания происходит перезапуск контроллера. Как сделать, чтобы значение этой переменной не пропадало?

Я думаю, что подобная задача решаеться в электронных часах. Нет ли у кого примера на С.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
prottoss
сообщение Oct 23 2006, 06:23
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(GSK @ Oct 23 2006, 14:11) *
Как решить следующую задачку:
Таймер микроконтроллера вырабатывает прерывания через определенные промежутки времени. По этому прирыванию увеличиваеться значение переменной. При провале питания происходит перезапуск контроллера. Как сделать, чтобы значение этой переменной не пропадало?
Я думаю, что подобная задача решаеться в электронных часах. Нет ли у кого примера на С.


Для начала объявить эту переменную как __no_init, что бы она не инициализировалась стартовым кодом, генерируемым компилятором. Если в Вашем контроллере есть MCU control and Status Register (MCUCSR), и в нем присутсвует флаг PORF (Power On Reset), программа может контролировать, "холодный" или "горячий" старт произошел, соответсвенно инициализировать переменную или нет.

В электронных часах (стационарных), ИМХО, обычно решается двумя питаниями - сетевым и батарейным


--------------------
Go to the top of the page
 
+Quote Post
Семён
сообщение Oct 23 2006, 08:35
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922



Цитата(prottoss @ Oct 23 2006, 10:23) *
Для начала объявить эту переменную как __no_init, что бы она не инициализировалась стартовым кодом, генерируемым компилятором. Если в Вашем контроллере есть MCU control and Status Register (MCUCSR), и в нем присутсвует флаг PORF (Power On Reset), программа может контролировать, "холодный" или "горячий" старт произошел, соответсвенно инициализировать переменную или нет.

В электронных часах (стационарных), ИМХО, обычно решается двумя питаниями - сетевым и батарейным

У меня для AtTiny2313, программа была написана на asm, не получилось для этой цели использовать MCUCSR. Переменная достаточно часто портилась.


--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
Go to the top of the page
 
+Quote Post
prottoss
сообщение Oct 23 2006, 08:52
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(Семён @ Oct 23 2006, 16:35) *
Цитата(prottoss @ Oct 23 2006, 10:23) *

Для начала объявить эту переменную как __no_init, что бы она не инициализировалась стартовым кодом, генерируемым компилятором. Если в Вашем контроллере есть MCU control and Status Register (MCUCSR), и в нем присутсвует флаг PORF (Power On Reset), программа может контролировать, "холодный" или "горячий" старт произошел, соответсвенно инициализировать переменную или нет.

В электронных часах (стационарных), ИМХО, обычно решается двумя питаниями - сетевым и батарейным

У меня для AtTiny2313, программа была написана на asm, не получилось для этой цели использовать MCUCSR. Переменная достаточно часто портилась.
Значит речь не о провале а о пропадании питания на относительно большое время. Возможно конденсаторы большей, чем есть, емкости решат проблему?


--------------------
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- GSK   Отсчет времени и сброс микроконтроллера   Oct 23 2006, 06:11
- - Семён   Использовать внутренней флеш или внешнею память. Н...   Oct 23 2006, 06:17
|- - CDT   Цитата(prottoss @ Oct 23 2006, 11:52) Зна...   Oct 24 2006, 02:45
- - Dog Pawlowa   Цитата(GSK @ Oct 23 2006, 09:11) Как сдел...   Oct 23 2006, 06:28
- - Михаил Горюнов   Можно сформировать, завести сигнал о исчезновении ...   Oct 23 2006, 07:06
- - GSK   А можно пример схемы ПРАВИЛЬНОЙ организации питани...   Oct 24 2006, 03:21
|- - prottoss   Цитата(GSK @ Oct 24 2006, 11:21) А можно ...   Oct 24 2006, 03:51
- - Михаил Горюнов   Не вижу смысл резервного питания применительно к э...   Oct 24 2006, 05:26
- - Igor_K   Если требуется гарантированно сохранять переменную...   Oct 24 2006, 05:53
- - GSK   Прошу прощения за назойливость. А как контролирова...   Oct 24 2006, 06:52
- - Михаил Горюнов   Цитата(GSK @ Oct 24 2006, 10:52) Прошу пр...   Oct 24 2006, 07:20
- - GinRider   Если питание пропадает ненадолго, то можно использ...   Oct 24 2006, 10:06
- - Михаил Горюнов   Цитата(GinRider @ Oct 24 2006, 14:06) Мож...   Oct 24 2006, 10:15


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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 01:25
Рейтинг@Mail.ru


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