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

 
 
> atmega88pa, отключение BOD программно
max_mart
сообщение Aug 30 2012, 10:22
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 248
Регистрация: 30-09-11
Пользователь №: 67 474



Всем привет.

Контроллер находится в режиме power-down. Просыпается по вотч-догу, настроенному только на прерывание, каждые 0.5 с. и по срабатыванию одной из 3 кнопок PCINT. При выключенном BOD и включенном вотч-доге потребление питания составляет 6 мкА, как в даташите.
Но не хотелось бы выключать супервизор(если он все время включен, то питание 25 мкА). В даташите написано, что его можно выключать программно на время пребывания в спящем режиме и затем он сам автоматически включится(когда контроллер проснется), если во фьюзах он включен(при этом он будит кушать около 3,3 мкА ).
Для этого есть специальные команды. И их надо использовать в конце каждого прерывания, чтобы выключить BOD.
Я использовал 3 варианта, но ни один не заработал!(
Команды:
1)
MCUCR |= (1<MCUCR |= (1<SMCR = 0b00000101; // enable sleep mode (power-down mode)
2)
MCUCR |= (1<MCUCR &=(~(1<SMCR = 0b00000101; // enable sleep mode (power-down mode)
3)
MCUCR |= 0b01100000;
MCUCR &= 0b11011111;
SMCR = 0b00000101; // enable sleep mode (power-down mode)
Подскажите, пожалуйста, в чем может быть причина не отключения BOD программно?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
max_mart
сообщение Aug 31 2012, 16:01
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 248
Регистрация: 30-09-11
Пользователь №: 67 474



Все спасибо работает. Токопотребление вместе с вотч-дог - 7 мкА biggrin.gif
Сегрей Борщ, и что это даст?Отключение всех внктренних подтяжек??? А если они нужны???Например в системе с низким потребелением, как у меня, сам атмел пишит, что все неиспользуемые ножки должны быть подтянуты к +!

Сообщение отредактировал max_mart - Aug 31 2012, 16:02
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 1 2012, 05:26
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (max_mart @ Aug 31 2012, 19:01) *
Сегрей Борщ, и что это даст? Отключение всех внктренних подтяжек??? А если они нужны???
Я же написал: "его желаемое значение". Ноль это значение или единица - вы решайте сами исходя из своей задачи. Вас ведь волновало, что приведенный код изменит состояние бита. Основная мысль моего сообщения была не в конкретном бите PUD, а в том, что не нужно каждый раз вычитывать из регистра (любого) биты, значения которых и так заранее известны - на этом можно сэкономить несколько тактов и байтов кода. Вместо "&=" и "|=", немного подумав, часто можно успешно использовать "=".


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



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

 


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


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