Добрый день!

Помогите пожалуйста разобраться вот в каком вопросе.
Программирую STM32F303VC через Atollic Studio с использованием "стандартных" библиотек.

Принцип работы устройства предполагает формирование прямоугольных импульсов тока заданной длительности (1 - 2 мс), затем пауза около 5 мс и повторение импульса.

В программе реализуется это так - таймер отсчитывет интервалы времени и при переполнении "включает заданную ножку контроллера" (ток начинает протекать через нагрузку);
аналоговый watchdog следит за величиной тока.
Получается все как нужно.

Вся проблема заключается в формировании заднего фронта тока и конфликте прерываний (если я это правильно понимаю).
Например, analog watchdog "говорит", что ток находится в заданном диапазоне и на выходе остается логическая единица.
Но в этот момент времени запускается прерывание от таймера (более приоритетное и ставит прерывание аналогового watchdoga в очередь) и отключает watchdog.
Но "единичка" записанная на соответствующий выход продолжает висеть.

Подскажите пожалуйста, как вывести прерывание watchdoga из "очереди", чтобы контроллер к нему не возвращался после обработки более приоритетного прерывания.
ADC_ClearITPendingBit (ADC1, ADC_IT_AWD1) не помогает и контроллер все равно возвращается к обработке прерывания.