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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Режим Power-down
muravei
сообщение Aug 20 2007, 17:55
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(KIG @ Aug 20 2007, 21:17) *
И всё же почему МК не просыпается после подачи на ножку INT0 напряжения низкого уровня (менее 1.2В)?

Так я таки непонял - то он у Вас не просыпается от низкого , то не засыпает от высокого! smile.gif
Судя по Вашему описанию , он может "заснуть" навсегда! Нарисуйте схему , как Вы его мучаете.
На Вашем месте я бы отключил всякие мостики с потенциометрами , от греха подальше, и включил бы
внутренний подтягивающий резистор на ИНТ0 . Коротил бы его потихоньку кнопкой на землю. Оно конечно дребезг, но понятнее бы было.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Aug 20 2007, 18:06
Сообщение #17


Гуру
******

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



Цитата(KIG @ Aug 21 2007, 01:17) *
И всё же почему МК не просыпается после подачи на ножку INT0 напряжения низкого уровня (менее 1.2В)?
Возможно по тому, что INT0 у Вас не правильно проинициализировано? Приведите код инициализации.


--------------------
Go to the top of the page
 
+Quote Post
KIG
сообщение Aug 21 2007, 06:59
Сообщение #18


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

Группа: Участник
Сообщений: 115
Регистрация: 25-12-06
Пользователь №: 23 884



Цитата(prottoss @ Aug 20 2007, 21:06) *
Возможно по тому, что INT0 у Вас не правильно проинициализировано? Приведите код инициализации.


void init_devices(void)
{
CLI(); //disable all interrupts
uart0_init();
MCUCR = 0x20;
GICR = 0x40;
TIMSK = 0x00; //timer interrupt sources
SEI(); //re-enable interrupts
//all peripherals are now initialised
}

//
void main(void)
{
init_devices();
putchar(15);
putchar(15);
for (i=1; i<50; i++);//Delay
MCUCR|=(1<<SE);
asm("sleep");
while (1);
}
Go to the top of the page
 
+Quote Post
prottoss
сообщение Aug 21 2007, 07:15
Сообщение #19


Гуру
******

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



Цитата(KIG @ Aug 21 2007, 14:59) *
Код
void init_devices(void)
{
...
MCUCR = 0x20;
...
}

В приведенном куске Вы инициализируете режим Power-Down mode и внешние прерывания INT0 и INT1 генерируются низким уровнем

Только я не понял, где Вы проверяете, что МК проснулся? smile.gif После sleep ничего нет...


--------------------
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Aug 21 2007, 09:13
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(muravei @ Aug 20 2007, 17:56) *
Вы совсем запутаете человека!

Наверное не совсем корректно выразился. Я имел ввиду, что если PD используется при переходе на батарейное питание при пропадании основного, то именно основное питание непосредственно и подаётся на ножку INT. Использование же режима PD прямо в схеме без батарейного чрезвычайно редко. Обычно используется IDLE.

Прошу прощения, если кого ввёл в заблуждение. smile.gif Конечно лучше обсуждать конкретную схему. Тогда будут более конкретные подсказки. Во всяком случае я надеюсь. smile.gif
Go to the top of the page
 
+Quote Post

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

 


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


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