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

tiny2313 настройка прерываний INT0 и INT1

Добавлено: Вс апр 03, 2011 00:26:51
timo13
Помогите пожалуйста, пытаюсь настроить внешние прерывания INT0 и INT1 для tiny2313. В проге загоняю в GIMSK-0b11000000, в MCUCR-0b00001111 (по переднему фронту), далее программа должна уйти в пустой цикл а МК отслеживать эти самые прерывания (нажатие кнопок). Но при пошаговой отладке в AVR Studio прерывание INT0 возникает постоянно (прога подскакивает в таблицу векторов на INT0 и уходит на обработчик). Если запретить INT0, то тоже самое происходит с INT1.
Я, наверное, чето не понимаю))

Re: tiny2313 настройка прерываний INT0 и INT1

Добавлено: Вс апр 03, 2011 00:52:23
SubDia
Узнаю собственные грабли (правда, у меня подобная проблема с Мегой 8-й была). :)
Попробуйте при инициализации в EIFR установить INTF0 и INTF1 в единичку (даташит Tiny 2313, стр. 61, раздел External Interrupt Flag Register).

Re: tiny2313 настройка прерываний INT0 и INT1

Добавлено: Вс апр 03, 2011 09:37:33
timo13
SubDia писал(а):Узнаю собственные грабли (правда, у меня подобная проблема с Мегой 8-й была). :)
Попробуйте при инициализации в EIFR установить INTF0 и INTF1 в единичку (даташит Tiny 2313, стр. 61, раздел External Interrupt Flag Register).
Да вот вчера прочитал про это, загнал в EIFR - ob11000000. Не помогает. А как Вы с Мегой разобрались?

Re: tiny2313 настройка прерываний INT0 и INT1

Добавлено: Вс апр 03, 2011 11:42:41
SubDia
timo13 писал(а):А как Вы с Мегой разобрались?
Да собственно говоря, так и разобрался.. Даташит перевернул вверх дном, и при очередном прочтении раздела "External Interrupts" промелькнула в голове такая идея (то, что я вчера предложил). Помогло.
Значит, у Вас постоянно выполняется условие для выполнения прерывания. Пока других идей нет (может, высшие разумы что подскажут - ежели они в подобные темы заглядывают вообще :)).

Re: tiny2313 настройка прерываний INT0 и INT1

Добавлено: Вс апр 03, 2011 11:50:12
md5sum
Остается только код приложить....

Re: tiny2313 настройка прерываний INT0 и INT1

Добавлено: Вс апр 03, 2011 19:29:04
timo13
Всем спасибо разобрался. Открываем все нужные регистры в AVR Studio и внимательно смотрим, что с ними происходит. У меня по ходу проги затирался MCUCR попытками сконфигурировать sleep mode. Главное внимательность)))