Страница 1 из 1

Неполучается проснуться по изменению портов Атмега128.

Добавлено: Чт янв 24, 2008 10:54:44
MetEl
Речь о сигнале управления в режиме сна - SLEEP.
В CV AVR ника не прописать DIEOExn , DIEOVxn.
Ну на пример DIEOEA0, порт A линия 0.
Как бы я не писал CV АVR не может понять чего я хочу.

Вобщем нме надо чтоб при нажатии на любую копку подключённого к какомунить порту МК проснулся. По прерываниям всё просыпается а вот с сигналом SLEEP я ни как разобраться не могу.

Посоветуёте реальным примером пожалуйста(текстом).

Re: Неполучается проснуться по изменению портов Атмега128.

Добавлено: Чт янв 24, 2008 11:16:52
Mamonth
MetEl писал(а):По прерываниям всё просыпается а вот с сигналом SLEEP я ни как разобраться не могу.
Так а по-другому и не разбудишь )) Должно что-то произойти чтобы МК проснулся. И это что-то прерывание.

Добавлено: Чт янв 24, 2008 11:25:55
MetEl
Так всего есть 8 входов-прерываний иненно. А мне надо не вход-прерывание, а просто любой порт. Атмега 128 может проснуться по изменению состояния любого входа если прописать альтернативные функции. Вот сигналы в МК.

DIEOE Разрешение альтернативного цифрового ввода Если данный бит установлен, то функция разрешения цифрового передается сигналу DIEOV. Если данный сигнал сброшен, то разрешение цифрового ввода определяется состоянием микроконтроллера (нормальный режим, режимы сна).
DIEOV Альтернативное состояние цифрового ввода Если DIEOE установлен, то цифровой ввод разрешен/запрещен, если DIEOV установлен/сброшен независимо от состояния микроконтроллера (нормальный режим, режимы сна).


Все это конфигурирует сигнал SLEEP.

Добавлено: Чт янв 24, 2008 11:47:01
ARV
Если я верно понял приведенный цитаты, то следует понимать все как раз наоборот: не выход из режима сна по состоянию любого порта, а наоборот - изменение режима порта в зависимости от сна или не сна.

почитал я даташит на мегу128... и не обнаружил там принципиальной возможности просыпаться по сигналу на любом порту ввода-вывода... обнаружил только 8 линий внешних прерываний INT0...INT7 (совмещенных с некоторыми выводами портов D и Е). Как я понял, в пробуждении по прерыванию у тебя проблемы нет :)

кстати, вышеупомянутый сигнал DIEOE - это просто наименование внутреннего сигнала кристалла, это не регистр, не порт и вообще абстракция. Доступа к нему напрямую не существует. Грубо говоря, этими символами названа микроцепь в топологии кристалла, которая управляет режимом работы схемы порта ввода-вывода. Это управление заключается в том, что в зависимости от текущего режима работы (сон или нет) порт либо отключается, либо переводится в определенный режим в соответствии с его альтернативными функциями.

Добавлено: Чт янв 24, 2008 12:42:12
MetEl
Да , блин.
Сейчас ещё перечитал, ну в общем понял. А жаль.

По прерыванию то работает. Дык у меня SDA и SCL (совмешёны с входами прерываний) заняты. Осталось 6 входов-прерываний. 2-а прерывания используются. Осталось свободных 4.

Ладно...

Добавлено: Чт янв 24, 2008 13:09:33
ARV
повесь все кнопки на одно прерывание... или сколько там кнопок у тебя? или надо во сне супермало потреблять?