Программирование спящего режима Atmega16a

Обсуждаем контроллеры компании Atmel.
Ответить
chernyshov_nikita
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Сб апр 13, 2013 10:29:21

Программирование спящего режима Atmega16a

Сообщение chernyshov_nikita »

Здравствуйте, на днях решил заняться вопросом энергосбережения, а именно переведением МК в "спящий режим". Почитав несколько статей на эту тему, я, признаюсь, мало что понял, разобрался с различными типами режимов, но вот программы с хорошим объяснением я так и не нашел.
На плате у меня МК и пара светодиод-фототранзистор, на ножке, к которой подключен фототранзистор постоянно 1. Хотелось бы, чтобы МК переходил в спящий режим и выходил из него, когда на той самой ножке напряжения нет, а также после включения реагировал довольно шустро. Подскажите, возможно ли это сделать, и если да, то как?
Заранее спасибо
Реклама
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Программирование спящего режима Atmega16a

Сообщение akl »

Ток через светодиод, по мне, съест все преимущества спящего режима. А вот если будет просто фототранзистор, при освещении которого выдаётся логический 0 на лапу (INT0, INT1,INT2), то уже можно использовать SLIP-режимы. По мне главное не вход в SLIP, а выход из него. Для чего, при входе в разрешённое прерывание по низкому уровню на (INT0, INT1) или фронту/спаду на INT2 дождаться выполнения программной задержки, необходимой для запуска и стабилизации частоты тактирования и выйти из прерывания по RET, т.к. при этом I-бит глобального разрешения прерываний не устанавливается и камень спокойно может продолжать работу.
Реклама
Аватара пользователя
pryanic
Открыл глаза
Сообщения: 59
Зарегистрирован: Вт янв 17, 2012 20:06:08

Re: Программирование спящего режима Atmega16a

Сообщение pryanic »

Даташит на кристалл поможет. Есть еще отличная книга Евстифеева - Микроконтроллеры AVR семейства Mega. Там разобраны очень подробно контроллеры этого семейства.
Аватара пользователя
Eugene.Negrobov
Мучитель микросхем
Сообщения: 472
Зарегистрирован: Ср фев 15, 2012 09:00:34
Откуда: Киев

Re: Программирование спящего режима Atmega16a

Сообщение Eugene.Negrobov »

Светодиоды и энергосбережение- штуки несовместимые, их в батареечных устройствах вообще быть не должно.

Если просто интересно, как энергосбережение работает:
Там есть регистр MCUCR, в нем надо выставить бит, разрешающий спящий режим и еще пару выбирающих то, какой конкретно будет заюзан режим, их там много, но я лично всегда юзаю Power Down, самый экономичный. Вызывается слип инструкцией sleep.
Выходят из слипа прерываниями, при Power Down это внешние прерывания, режим low level идеально подходит в твоем случае.
I'm on a huge rock, flying through space!
Реклама
Эиком - электронные компоненты и радиодетали
Ответить

Вернуться в «AVR»