Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
07.10.2008, 23:05
|
|
Временная регистрация
Регистрация: 13.07.2008
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
ATMEGA8 и SLEEP-режим
Приветствую всезнающий ALL!
Столкнулся тут с проблемкой вывода ATmega8 из SLEEP-режима. Контроллер засыпает, но не просыпается от внешнего прерывания. Использую режим Power-down, может что-то не до конца сконфигал ? На выводе с INT1 висит кнопка(замыкает на землю), PULL-UP на эту ногу включен.
Вот элементы проги:
Это при начальной конфигурации:
ldi r16,0b10101000 ;настройка режима SLEEP на Power-down и режима INT1 (на прерывание при 1-›0)
out MCUCR,r16
Процедура ухода в SLEEP:
ldi r16,0b10000000 ;разрешение прерывания по INT1
out GICR,r16
sleep ; спать!
ret
Вектор прерывания от INT1 ведёт в следующее:
ldi r16,0b00000000 ;запрет прерывания по INT1
out GICR,r16
Если команду SLEEP убрать то прерывание срабатывает прекрасно (в активном режиме), в момент ухода в SLEEP прерывания разрешены (бит I). Вот не знаю что и думать, может он вообще от этих прерываний не должен просыпаться ? Хотя в ДШ пишут что должен.
|
|
|
|
08.10.2008, 07:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 09.12.2007
Адрес: Новосибирск
Сообщений: 1,021
Сказал спасибо: 10
Сказали Спасибо 70 раз(а) в 63 сообщении(ях)
|
А глобальные прерывания разрешить забыл?(sei)
И прерывание д.б. по низкому уровню длительностью
не менее времени запуска МК.
__________________
И на камнях растут деревья!
|
|
|
|
08.10.2008, 18:36
|
|
Временная регистрация
Регистрация: 13.07.2008
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Сообщение от domowoj
|
А глобальные прерывания разрешить забыл?(sei)
И прерывание д.б. по низкому уровню длительностью
не менее времени запуска МК.
|
Глобальное разрешено, в активном режиме прерывание срабатывает.
А на счет того что по "низкому уровню" получается в режиме "1-›0" пробуждение не прозойдет ?
|
|
|
|
08.10.2008, 18:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 09.12.2007
Адрес: Новосибирск
Сообщений: 1,021
Сказал спасибо: 10
Сказали Спасибо 70 раз(а) в 63 сообщении(ях)
|
Сообщение от black27512
|
Сообщение от domowoj
|
А глобальные прерывания разрешить забыл?(sei)
И прерывание д.б. по низкому уровню длительностью
не менее времени запуска МК.
|
Глобальное разрешено, в активном режиме прерывание срабатывает.
А на счет того что по "низкому уровню" получается в режиме "1-›0" пробуждение не прозойдет ?
|
Производителю нужно верить.
__________________
И на камнях растут деревья!
|
|
|
|
08.10.2008, 18:55
|
|
Временная регистрация
Регистрация: 13.07.2008
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Хм! А ведь действительно, перевёл в режим "по низкому уровню" всё заработало. Спасибо за совет.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
AVR SLEEP режим
|
picavr |
Микроконтроллеры, АЦП, память и т.д |
2 |
19.08.2009 15:38 |
Как корректно перейти в sleep?
|
hubble |
Микроконтроллеры, АЦП, память и т.д |
7 |
25.12.2008 04:05 |
Как выйти из режима Sleep (PIC16F84A)?
|
tnosov |
Микроконтроллеры, АЦП, память и т.д |
28 |
10.11.2007 16:41 |
Внимание! Запись в EEPROM и переход в режим sleep
|
paha1956 |
Микроконтроллеры, АЦП, память и т.д |
2 |
02.03.2007 12:47 |
выход из sleep (18f2320)
|
SergeyKN |
Микроконтроллеры, АЦП, память и т.д |
1 |
02.11.2006 14:41 |
Часовой пояс GMT +4, время: 18:07.
|
|