This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

NVIC_EnableIRQ : enables only one interrupt at a time?

Looking at the one of the implementations of NVIC_EnableIRQ, Im wondering how the ISER works

Fullscreen
1
2
3
4
static __INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
{
NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* enable interrupt */
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Calling the above two consequitve times with a different IRQn, will erase the enable of the previous interrupt. Does it mean I can enable one interrupt at a time?

Fullscreen
1
2
3
NVIC_EnableIRQ(8); // enables IRQ8
NVIC_EnableIRQ(7); // enables IRQ7 but disables IRQ8 ?!?
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Correct, or do I miss something?

Further, can I set an IER of a peripheral device without enabling its interrupt ?!?

Thanks in advance !

0