Я сам с такой проблемой малегко накололся. Если сделать прерывание по переходу из одного состояния в другое. и такое случалось, пусть даже за 5 минут до того как флаг выставил, сработка произойдет сразу же как только разрешишь прерывание. Я помню победил тогда перевев прерывание на срабатывать по уровню и поставил внешний триггер, который ресетил перед выходом из обработки и перед установкой флагов прерывния.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)