AnsweredAssumed Answered

Handling multiple interrupts (noisy line)

Question asked by Mark Senko on Feb 23, 2018
Latest reply on Feb 23, 2018 by waclawek.jan

I'm new to programming with ST Micro, so I hope this is a simple question.

Here is the generic pattern (correct me if I'm wrong)  in an IRQ handler:

 

void EXTI4_IRQHandler(void)
{
    if(EXTI_GetITStatus(EXTI_Line4) != RESET)
    {

         /* Execute your code here */


        /* Clear the EXTI line 4 pending bit */
        EXTI_ClearITPendingBit(EXTI_Line4);
    }
}

 

What happens if my external line interrupts at a high rate, maybe it's noisy?

Do I have to worry that I may enter this handler with another interrupt before I've finished servicing the first one? I'd probably need to use a mutex or equivalent if I don't want to service two interrupts at once.

OR.... am I guaranteed not to get another interrupt until after I clear the pending bit?

Outcomes