roboforum.ru

Технический форум по робототехнике.

Спящий режим в tiny2313v

Спящий режим в tiny2313v

ximik » 04 окт 2009, 20:59

Вот вычитал в даташите , что есть регистр MCUCR отвечающий за спящие режимы.
бит se - разрешение входа в сон
биты sm1,sm0 - тип сна.

Остальные биты как я понял ко сну не относятся.

Чтобы вогнать МК в спящий режим мне просто надо в программе в MCUCR записать нужное значение и все?
при прерывании МК проснется сам?
а если в прошивке нет прерываний?
Вобщем объясните мне как усыпит, а потом разбудить.

Спасибо.

Re: Спящий режим в tiny2313v

avr123.nm.ru » 04 окт 2009, 21:31

А в даташите нет примеров усыплвния на Си и АСМ-е ? Есть еще и книга Ефстифеева по ATtiny2313 которая по сути есть перевод даташита. Советую скачать. Если не найдете где, то она есть в библиотеке указаной на http://avr123.nm.ru

Re: Спящий режим в tiny2313v

ALHIMIK » 04 окт 2009, 21:34

в дс должна быть таблица в которой указывается что отключается при переводе в спящий режим
общие положения такие - если отключается CK_io то прерывания которые могут разбудить мк только асинхронные

Re: Спящий режим в tiny2313v

ximik » 04 окт 2009, 22:53

Нет. В даташите нет нет примера как усыпить МК.
А вот книжку щас посмотрим.

Re: Спящий режим в tiny2313v

avr123.nm.ru » 05 окт 2009, 00:21

> В даташите нет нет примера как усыпить МК.

Т.е. в вашем даташите ( doc2543.pdf ) стр. 15 пустая чтоль ?

Re: Спящий режим в tiny2313v

ximik » 05 окт 2009, 13:53

Т.е. в вашем даташите ( doc2543.pdf ) стр. 15 пустая чтоль ?

:oops: есть пример входа в сп. режим.
Просто я дуал что это должно находиться в разделе Power Management and Sleep Modes.
Книгу посмотрел.
Теперь кое-что прояснилось:
подключаем <sleep.h>
пишем sleep_enable();
а потом например powerdown();

Но вот не понятно, если МК спит и просыпается от прерывания, то надо в программе отключать сон или МК будет бодрствовать до следующего sleep_enable(); powerdown();?

Re: Спящий режим в tiny2313v

avr123.nm.ru » 05 окт 2009, 15:03

До следующего.

Re: Спящий режим в tiny2313v

ximik » 05 окт 2009, 18:26

Спасибо... пошел строчить код.

Re: Спящий режим в tiny2313v

ximik » 13 окт 2009, 11:02

прерывание от системы захвата (pin ICP) происходит при изменении логического уровня - это значит ,что по нему не выйти из глубокого сна?

Re: Спящий режим в tiny2313v

executer » 20 ноя 2009, 12:10

аналогичная проблема. АтТини 2313 засыпает и не просыпается. Хочу чтобы просыпался по внешнему прерыванию №1 или №0.
Пробовал при настроенных срабатываниях по спаду - не просыпается (.
Катит только по какомуто конкретному типу срабатывания (по верхнему или по нижнему уровню)?

Re: Спящий режим в tiny2313v

SERGEY_M » 20 ноя 2009, 13:00

читаем доки на МК
Выйдет из спячги (Power-down)только по низкому уровню на ноге
Низкий уровень нужно удерживать не менее времени запуска МК (время выставляется фузами)
Ну и прерывание предварительно нужно настроить на срабатывание по низкому уровню...
Во время спячки (Power-down) работает только собачий таймер, все остальные такты спят))
а собачий таймер медленный (128 кГц) и на выход из спячки нужно время :pardon:

Re: Спящий режим в tiny2313v

executer » 20 ноя 2009, 14:40

Ну вот чтото такое было в ДЩ написано, только на английском ) - не разобрал.
А если у меня обычная кнопка на прерывании - это каждый раз надо переконфигурировать тип срабатываний - чтобы при зажатой кнопке контроллер не залипал в этом прерывании?? (про дребезг пока забудем...)

Re: Спящий режим в tiny2313v

SERGEY_M » 20 ноя 2009, 15:36

ну, наверное да
перед спячкой и после выхода из спячки меняешь тип прерывания...

Re: Спящий режим в tiny2313v

executer » 20 ноя 2009, 15:56

Сережа молодец! (С)
Буду пробовать.
ПС: А протеус просыпался, собака, и при прерывнии по спаду на INT0. :oops:

Re: Спящий режим в tiny2313v

SERGEY_M » 20 ноя 2009, 16:14

:D это-же "ПРОТЕУС"


Rambler\'s Top100 Mail.ru counter