Ложное срабатывание INT0 на AVR

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Ложное срабатывание INT0 на AVR

Сообщение HarryStar » 10 мар 2015, 11:16

Ситуация
Есть обработчик INT0 по любому изменению фронта.
- внутри я определяю что произошло нужное мне событие (оно на восходящем фронте + доп. условия).
- дальше идет обмен данными по тому-же пину что INT0 внутри обработчика
- дальше жду высокого уровня на пине
- выхожу из обработчика

и тут ПРОБЛЕМА

тут же происходит повторное прерывание INT0 с высоким уровнем на пине.

А его не должно быть, я выхожу из обработчика с высоким уровнем и никакого восходящего фронта быть не должно.

Внутри обработчика прерывания запрещены, в это время возникает куча восходящих и нисходящих фронтов, и где-то ставится флаг, что прерывание должно произойти, но не происходит из за запрета. А как только разрешается, тут же оно и приходит. ВОПРОС: Какой флаг нужно сбросить в конце моего обработчика, чтоб после его окончания не происходило прерывание на то, что уже закончилось?

Надеюсь понятно объяснил. МК ATmega32 если это важно, но я так понимаю для любых AVR оно одинаково.
Аватара пользователя
HarryStar
 
Сообщения: 995
Зарегистрирован: 15 ноя 2010, 13:56
Откуда: Нижний Новгород
прог. языки: С, С++, РНР

Re: Ложное срабатывание INT0 на AVR

Сообщение Angel71 » 10 мар 2015, 12:02

gifr
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18

Re: Ложное срабатывание INT0 на AVR

Сообщение Radist » 10 мар 2015, 22:38

Добавлю лишь, что флаг сбрасывается записью единички (как это ни парадоксально).
Аватара пользователя
Radist
 
Сообщения: 2253
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Ложное срабатывание INT0 на AVR

Сообщение Angel71 » 11 мар 2015, 00:03

в чём парадокс? как посчитали удобным, так и сделали. :) так часто делают, поищите "write 1 to clear bit".
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19