void I2C::EnableEventInterrupt (bool enable) { if (enable) { *_pI2C_CR2 |= I2C_CR2_ITEVTEN; NVIC_SetEnable(_eventIrqNo); } else { *_pI2C_CR2 &= ~I2C_CR2_ITEVTEN; NVIC_ClearEnable(_eventIrqNo); } }
void I2C::EnableErrorInterrupt (bool enable) { if (enable) { *_pI2C_CR2 |= I2C_CR2_ITERREN; NVIC_SetEnable(_errorIrqNo); } else { *_pI2C_CR2 &= ~I2C_CR2_ITERREN; NVIC_ClearEnable(_errorIrqNo); } }
void BKP::EnableTamperInterrupt(bool enable, BKP_TamperInterrupt_Handler* handler) { if (enable) { _intHandler = handler; BKP_CSR |= BKP_CSR_TPIE; NVIC_SetEnable(IRQn_TAMPER); } else { BKP_CSR &= ~BKP_CSR_TPIE; NVIC_ClearEnable(IRQn_TAMPER); } }
void EXTI::Enable(bool enable, volatile uint32_t* edgeReg, volatile uint32_t* eventOrIntReg) { if (enable) { if (_irqnNo != IRQn_NONE) { NVIC_SetEnable(_irqnNo); } *edgeReg |= (1 << _line); *eventOrIntReg |= (1 << _line); } else { if (_irqnNo != IRQn_NONE) { NVIC_ClearEnable(_irqnNo); } *edgeReg &= ~(1 << _line); *eventOrIntReg &= ~(1 << _line); } }