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 !
For example, can I set the IER below
LPC_UART3->IER = 0x00000005UL; // Enable UART3 interrupt RBR ans RLS
without calling before it
NVIC_EnableIRQ(UART3_IRQn);
?
Where do I need to use
NVIC_EnableIRQ
and/or where do I need to set the corresponding peripheral
IER