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

 
 
> Еще раз про powerdown, нужен совет
smk
сообщение Apr 16 2008, 07:32
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



С чего возник вопрос. Есть прибор, который с периодичностью 1 с просыпается и контролирует два параметра с помощью АЦП. Приборчик должен быть автономный и долгоиграющий. Чтобы знать, что приборчик работает и батарейки не сдохли предусмотрена индикация каждые 10 с, т.е. каждый десятый раз просыпания. Теперь сам вопрос.

На http://www.gaw.ru/html.cgi/txt/doc/micros/avr/arh128/4.htm прочитал:
Выход из режима сна происходит при возникновении разрешенного прерывания. В этом случае, помимо времени старта микроконтроллер приостанавливается на 4 машинных цикла, выполняет процедуру обработки прерывания и продолжает выполнять команды следующие за SLEEP. Содержимое файла регистров и статического ОЗУ остается неизменным после выхода из режима сна. Если во время действия режима сна возникает условие сброса, то микроконтроллер пробуждается и исполняет код программы по вектору сброса.

Можно ли использовать регистр ОЗУ под счетчик к-ва "пробуждений" и как это сделать программно? Желательно уходить в power-down, а просыпаться по WDT. Использую С, WinAVR. Спасибо!


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
smk
сообщение Apr 17 2008, 16:35
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата
после установки новых батарей

В этой ситуации счет спокойно можно начинать с нуля. Суть в том, чтоб не утомлять пользователя частыми сигналами о работоспособности.

Цитата
в WinAVR необходимо объявить секцию с требуемыми атрибутами.

Начинаю читать. Если кто-то знает как это делается - поделитесь опытом и (если можно) примером кода.

Я так понял речь об этгом?:
9.3.3 The .bss Section
Uninitialized global or static variables end up in the .bss section.

Как объявить такую переменную и как потом с ней обращаться?

Сообщение отредактировал smk - Apr 17 2008, 16:56


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
Baser
сообщение Apr 17 2008, 21:49
Сообщение #3


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(smk @ Apr 17 2008, 19:35) *
Uninitialized global or static variables ...
Как объявить такую переменную и как потом с ней обращаться?

Как это в WinAVR не скажу, а в других компиляторах предельно просто. Есть расширение в виде ключевого слова.
В ИАР это: __no_init
В HiTech: persistent

Добавляется к любой переменной. Эта переменная попадает в секцию, которая не обнуляется после рестарта. Больше никаких отличий нет. Пример:

__no_init unsigned char Counter;

У меня в приборах с батарейным питанием половина переменных __no_init
Например регистры часов. Иначе любой случайный сброс - и время 00:00 smile.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- smk   Еще раз про powerdown   Apr 16 2008, 07:32
- - oran-be   Цитата(smk @ Apr 16 2008, 10:32) Можно ли...   Apr 17 2008, 14:55
|- - Aleksandr Baranov   Цитата(smk @ Apr 17 2008, 12:35) В этой с...   Apr 17 2008, 18:21
- - smk   Если я правильно понял, то так будет работать: in...   Apr 17 2008, 19:54
|- - Aleksandr Baranov   Цитата(smk @ Apr 17 2008, 15:54) Если я п...   Apr 17 2008, 21:25
|- - xelax   Цитата(smk @ Apr 17 2008, 23:54) Если я п...   Apr 18 2008, 07:15
- - smk   ЦитатаВот, что написано в мануале: The .noinit Se...   Apr 18 2008, 06:39
- - smk   ЦитатаДа правильно. Спасибо! В студии работает...   Apr 18 2008, 07:36
- - xelax   Вы какую мегу юзаете? В меге 1281, которую я испо...   Apr 18 2008, 08:41
- - smk   ЦитатаВы какую мегу юзаете? tiny13 ЦитатаА MCUCR ...   Apr 18 2008, 08:47
|- - xelax   Цитата(smk @ Apr 18 2008, 12:47) Там есть...   Apr 18 2008, 08:58
- - smk   Всем спасибо, все заработало в железе. Может кому ...   Apr 18 2008, 19:32
- - smk   Появился вот такой вопрос. При включении питания п...   May 18 2008, 15:37
|- - _Pasha   Цитата(smk @ May 18 2008, 18:37) Цель воп...   May 18 2008, 17:37
|- - Сергей Борщ   Цитата(smk @ May 18 2008, 18:37) При вклю...   May 18 2008, 18:06
- - smk   ЦитатаКак указал _Pasha, надо определить факт вклю...   May 18 2008, 19:54


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 03:14
Рейтинг@Mail.ru


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