Ситуация
Есть обработчик INT0 по любому изменению фронта.
- внутри я определяю что произошло нужное мне событие (оно на восходящем фронте + доп. условия).
- дальше идет обмен данными по тому-же пину что INT0 внутри обработчика
- дальше жду высокого уровня на пине
- выхожу из обработчика
и тут ПРОБЛЕМА
тут же происходит повторное прерывание INT0 с высоким уровнем на пине.
А его не должно быть, я выхожу из обработчика с высоким уровнем и никакого восходящего фронта быть не должно.
Внутри обработчика прерывания запрещены, в это время возникает куча восходящих и нисходящих фронтов, и где-то ставится флаг, что прерывание должно произойти, но не происходит из за запрета. А как только разрешается, тут же оно и приходит. ВОПРОС: Какой флаг нужно сбросить в конце моего обработчика, чтоб после его окончания не происходило прерывание на то, что уже закончилось?
Надеюсь понятно объяснил. МК ATmega32 если это важно, но я так понимаю для любых AVR оно одинаково.