Здравствуйте!
У меня возникла необходимость генерировать программное прерывание, то есть устанавливать некий бит и улетать в обработчик прерываний с приоритетом выше USB и ниже I2S. Не уверен, то ли я нашел, но в STM32F429 есть регистр EXTI_SWIER, устанавливая бит которого в мануале обещают программное прерывание. Пытаюсь его настроить так:
Код
EXTI->IMR |= EXTI_IMR_MR0;
NVIC_SetPriority(EXTI0_IRQn, 15);
NVIC_EnableIRQ(EXTI0_IRQn);
EXTI->SWIER |= EXTI_IMR_MR0;
обработчик прерываний такой:
Код
void EXTI0_IRQHandler (void)
{
SET(TEST_X);
}
Вроде как, после установки EXTI->SWIER |= EXTI_IMR_MR0 программа должна улететь в обработчик прерывания, но этого не происходит. Подскажите пожалуйста, что я делаю не так?