Вот вычитал в даташите , что есть регистр MCUCR отвечающий за спящие режимы. бит se - разрешение входа в сон биты sm1,sm0 - тип сна.
Остальные биты как я понял ко сну не относятся.
Чтобы вогнать МК в спящий режим мне просто надо в программе в MCUCR записать нужное значение и все? при прерывании МК проснется сам? а если в прошивке нет прерываний? Вобщем объясните мне как усыпит, а потом разбудить.
А в даташите нет примеров усыплвния на Си и АСМ-е ? Есть еще и книга Ефстифеева по ATtiny2313 которая по сути есть перевод даташита. Советую скачать. Если не найдете где, то она есть в библиотеке указаной на http://avr123.nm.ru
в дс должна быть таблица в которой указывается что отключается при переводе в спящий режим общие положения такие - если отключается CK_io то прерывания которые могут разбудить мк только асинхронные
Т.е. в вашем даташите ( doc2543.pdf ) стр. 15 пустая чтоль ?
есть пример входа в сп. режим. Просто я дуал что это должно находиться в разделе Power Management and Sleep Modes. Книгу посмотрел. Теперь кое-что прояснилось: подключаем <sleep.h> пишем sleep_enable(); а потом например powerdown();
Но вот не понятно, если МК спит и просыпается от прерывания, то надо в программе отключать сон или МК будет бодрствовать до следующего sleep_enable(); powerdown();?
аналогичная проблема. АтТини 2313 засыпает и не просыпается. Хочу чтобы просыпался по внешнему прерыванию №1 или №0. Пробовал при настроенных срабатываниях по спаду - не просыпается (. Катит только по какомуто конкретному типу срабатывания (по верхнему или по нижнему уровню)?
читаем доки на МК Выйдет из спячги (Power-down)только по низкому уровню на ноге Низкий уровень нужно удерживать не менее времени запуска МК (время выставляется фузами) Ну и прерывание предварительно нужно настроить на срабатывание по низкому уровню... Во время спячки (Power-down) работает только собачий таймер, все остальные такты спят)) а собачий таймер медленный (128 кГц) и на выход из спячки нужно время
Ну вот чтото такое было в ДЩ написано, только на английском ) - не разобрал. А если у меня обычная кнопка на прерывании - это каждый раз надо переконфигурировать тип срабатываний - чтобы при зажатой кнопке контроллер не залипал в этом прерывании?? (про дребезг пока забудем...)