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

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

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?

NVIC_EnableIRQ(8);   // enables IRQ8

NVIC_EnableIRQ(7);   // enables IRQ7 but disables IRQ8 ?!?

Correct, or do I miss something?

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

Thanks in advance !

Parents
  • Thanks for answering. However, my question is more about the purpose of use of the register, rather than how to use it.

    In fact, Id be glad to know the answer, if setting an  IER register of a peripheral device will be ok, without enabling its interrupt over the ISER (as descrbied in my second question below) ?

Reply
  • Thanks for answering. However, my question is more about the purpose of use of the register, rather than how to use it.

    In fact, Id be glad to know the answer, if setting an  IER register of a peripheral device will be ok, without enabling its interrupt over the ISER (as descrbied in my second question below) ?

Children