Hello everyone.
I am writing an interrupt handler for a external interrupt (EXTINT2) on an ATSAMC21N18A. I get by with a qualifier like this:
if (EIC->INTFLAG.reg & (1ul << 2))
but I'd much rather do something like:
if (EIC->INTFLAG.bit.EXTINT2)
I cannot access the INTFLAG register as bits, I get an error "has no member named 'EXTINT2.' When I look at the implementation in eic.h I see
typedef union { // __I to avoid read-modify-write on write-to-clear register struct { __I uint32_t EXTINT:16; /*!< bit: 0..15 External Interrupt */ __I uint32_t :16; /*!< bit: 16..31 Reserved */ } bit; /*!< Structure used for bit access */ uint32_t reg; /*!< Type used for register access */ } EIC_INTFLAG_Type;
How do I access an individual bit in this register?