Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ATmega128 сбрасывается при внешнем прерывании EXT3
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
nullakilla
Внешнее прерывание INT3 настроено на срабатывание по спадающему уровню
Код
void init_cardreader(){
      //enable INT0, INT1, INT2, INT3 on falling edge
    EICRA = ( 1 << ISC01 ) | ( 1 << ISC11 ) | ( 1 << ISC21 ) | ( 1 << ISC31 );
    EIMSK = ( 1 << INT0 ) | ( 1 << INT1 ) | ( 1 << INT2 ) | ( 1 << INT3 );
}


Когда выполняется прерывание, то микроконтроллер сбрасывается sad.gif.

Подскажите, плиз, куда копать.
SysRq
Остальной код показывайте.
smac
Цитата(nullakilla @ Jan 9 2010, 20:54) *
...Подскажите, плиз, куда копать.

Как всегда, в таблицу векторов прерываний.
DpInRock
В установках компилятора установите режим заполнения неиспользуемых векторов прерываний командой RETI.
nullakilla
Цитата(DpInRock @ Jan 10 2010, 07:53) *
В установках компилятора установите режим заполнения неиспользуемых векторов прерываний командой RETI.


СПАСИБО!!!! ПОМОГЛО!!!
smac
Цитата(DpInRock @ Jan 10 2010, 08:53) *
В установках компилятора установите режим заполнения неиспользуемых векторов прерываний командой RETI.

Совет действенный, но КМК он убирает только результат глюка, а не сам глюк. Думаю стоит разобраться с причиной сброса (нет нужного вектора прерывания по таймеру, существует "лишний" источник прерывания или т. п.), хотя топикстартеру виднее.
nullakilla
Моей ошибкой было то, что я настроил прием четырех внешних прерываний, а описал интеррапт-рутину только для одного. sad.gif

Эффект замыленного глаза подействовал.

Еще раз спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.