реклама на сайте
подробности

 
 
> Прерывание не вызывается повторно
Anub
сообщение Jul 10 2008, 14:20
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 26-05-08
Пользователь №: 37 825



ATMEGA16

Такая вот проблема. Изначально МК находится в спящем режиме, при 0 на int1 вызывается прерывание которые выводит мк из спящего режима, После чего повторно вызвать прерывание не удается. Регистры которые я задавал-
MCUCR - 01100000
GICR - 10000000
При этом int1 становится обычным выводом, т. к. специально написанная тестовая функция показала что так оно и есть. Похоже что я где то чего то не прописал?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Александр Куличо...
сообщение Jul 10 2008, 18:21
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 6-03-06
Из: Украина, г. Винница
Пользователь №: 15 017



Цитата
Изначально МК находится в спящем режиме

Цитата
давайте попробуем Int настроить как Edge Triggered (а не Level Sensitive)

Edge Triggered по Int0/Int1 разбудит МК только из Idle mode.
Если под спящим режимом подразумевается ADC Noice Reduction, Power Down, PowerSave или Standby Mode, то нужно либо Level Sensitive по Int0/Int1, либо Edge Triggered по Int2.
Кроме того, для того, чтобы после вывода из power done mode в МК выставился флаг прерывания Int1, низкий уровень на пине должен удерживаться до самого старта контроллера (т.е. 2 цикла watchdog'a + время, определяемое fuse-битами SUT). При меньшем времени контроллер "проснется", но прерывание по Int1 не будет выполнено
Цитата
Note that if a level triggered interrupt is used for wake-up from Power-down mode, the changed
level must be held for some time to wake up the MCU. This makes the MCU less sensitive to
noise. The changed level is sampled twice by the Watchdog Oscillator clock. The period of the
Watchdog Oscillator is 1 μs (nominal) at 5.0V and 25°C. The frequency of the Watchdog Oscillator
is voltage dependent as shown in ”Electrical Characteristics” on page 291. The MCU will
wake up if the input has the required level during this sampling or if it is held until the end of the
start-up time. The start-up time is defined by the SUT Fuses as described in ”System Clock and
Clock Options” on page 24. If the level is sampled twice by the Watchdog Oscillator clock but
disappears before the end of the start-up time, the MCU will still wake up, but no interrupt will be
generated
. The required level must be held long enough for the MCU to complete the wake up to
trigger the level interrupt.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 1st August 2025 - 00:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01373 секунд с 7
ELECTRONIX ©2004-2016