Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ATMega8L и External int0,1
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
pr0m
То есть работает, но как по низкому уровню - не выходит из обработчика, пока на ноге висит 0....

Инициализация:

void CKeys::Init()
{
// Срабатывание по спаду
MCUCR |= ((1<<ISC01) | (1<<ISC11));
// Очищаем прерывания на всякий случай
GIFR |= ((1<<INTF0)|(1<<INTF1));
// Разрешение прерываний INT0, INT1
GICR |= ((1<<INT0)|(1<<INT1));
}

Обработчик:
#pragma vector=INT0_vect
__interrupt void KeyUpInterruptHandler()
{
//GIFR |= (1<<INTF0);
DoSomething();
}

#pragma vector=INT1_vect
__interrupt void KeyDownInterruptHandler()
{
//GIFR |= (1<<INTF1);
DoSomething();
}

То ли лыжи не едут...?
Есть ли мнения у обчественности? huh.gif
defunct
А где глобальное разрешение прерываний? (SEI)
у вас не хватает одного из трех:
- enable_interrupts();
- SREG |= 0x80;
- asm("SEI");
pr0m
Цитата(defunct @ Sep 29 2006, 14:40) *
А где глобальное разрешение прерываний? (SEI)
у вас не хватает одного из трех:
- enable_interrupts();
- SREG |= 0x80;
- asm("SEI");


Есть, конечно... в main(). Иначе совсем не работало бы..
defunct
Хм.. тогда возможны 2 причины:
- в программе нет выхода из некоторого обработчика прерывания.
- недостаточный уровень сигнала (отрицательного перепада просто нет).

На чем проверяете?


Цитата
пока на ноге висит 0....

возможно там нет нуля, а присутствует высокочастотный сигнал.
pr0m
Цитата(pr0m @ Sep 29 2006, 14:44) *
Цитата(defunct @ Sep 29 2006, 14:40) *

А где глобальное разрешение прерываний? (SEI)
у вас не хватает одного из трех:
- enable_interrupts();
- SREG |= 0x80;
- asm("SEI");


Есть, конечно... в main(). Иначе совсем не работало бы..


Вопрос снят smile.gif Сам ступил - в main() рулю разными режимами сохранения енергии, то бишь тем же регистром, где и биты выбора режима работы внешних прерываний, там они и затирались в 0, что соответствует прерыванию по низкому уровню....
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.