EXTI - Remove boolean argument from EXTIEnable.
It's confusing to have a method called EXTIEnable that takes an argument that can DISABLE the line. There are usually 3 options for this: 1. Use two methods, one for enable, one for disable. 2. Use enum constants instead of the boolean argument. 3. Rename to '*Set', e.g. EXTISet(...) This commit applies option 1 above, as it's cleaner and the most common use case in the codebase.
This commit is contained in:
parent
0cfd462d85
commit
d0de9ac1f8
|
@ -173,7 +173,7 @@ static void mpuIntExtiInit(gyroDev_t *gyro)
|
||||||
IOInit(mpuIntIO, OWNER_GYRO_EXTI, 0);
|
IOInit(mpuIntIO, OWNER_GYRO_EXTI, 0);
|
||||||
EXTIHandlerInit(&gyro->exti, mpuIntExtiHandler);
|
EXTIHandlerInit(&gyro->exti, mpuIntExtiHandler);
|
||||||
EXTIConfig(mpuIntIO, &gyro->exti, NVIC_PRIO_MPU_INT_EXTI, IOCFG_IN_FLOATING, BETAFLIGHT_EXTI_TRIGGER_RISING);
|
EXTIConfig(mpuIntIO, &gyro->exti, NVIC_PRIO_MPU_INT_EXTI, IOCFG_IN_FLOATING, BETAFLIGHT_EXTI_TRIGGER_RISING);
|
||||||
EXTIEnable(mpuIntIO, true);
|
EXTIEnable(mpuIntIO);
|
||||||
}
|
}
|
||||||
#endif // USE_GYRO_EXTI
|
#endif // USE_GYRO_EXTI
|
||||||
|
|
||||||
|
|
|
@ -255,7 +255,7 @@ static void bmi160IntExtiInit(gyroDev_t *gyro)
|
||||||
IOInit(mpuIntIO, OWNER_GYRO_EXTI, 0);
|
IOInit(mpuIntIO, OWNER_GYRO_EXTI, 0);
|
||||||
EXTIHandlerInit(&gyro->exti, bmi160ExtiHandler);
|
EXTIHandlerInit(&gyro->exti, bmi160ExtiHandler);
|
||||||
EXTIConfig(mpuIntIO, &gyro->exti, NVIC_PRIO_MPU_INT_EXTI, IOCFG_IN_FLOATING, BETAFLIGHT_EXTI_TRIGGER_RISING); // TODO - maybe pullup / pulldown ?
|
EXTIConfig(mpuIntIO, &gyro->exti, NVIC_PRIO_MPU_INT_EXTI, IOCFG_IN_FLOATING, BETAFLIGHT_EXTI_TRIGGER_RISING); // TODO - maybe pullup / pulldown ?
|
||||||
EXTIEnable(mpuIntIO, true);
|
EXTIEnable(mpuIntIO);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -300,7 +300,7 @@ static void bmi270IntExtiInit(gyroDev_t *gyro)
|
||||||
IOInit(mpuIntIO, OWNER_GYRO_EXTI, 0);
|
IOInit(mpuIntIO, OWNER_GYRO_EXTI, 0);
|
||||||
EXTIHandlerInit(&gyro->exti, bmi270ExtiHandler);
|
EXTIHandlerInit(&gyro->exti, bmi270ExtiHandler);
|
||||||
EXTIConfig(mpuIntIO, &gyro->exti, NVIC_PRIO_MPU_INT_EXTI, IOCFG_IN_FLOATING, BETAFLIGHT_EXTI_TRIGGER_RISING);
|
EXTIConfig(mpuIntIO, &gyro->exti, NVIC_PRIO_MPU_INT_EXTI, IOCFG_IN_FLOATING, BETAFLIGHT_EXTI_TRIGGER_RISING);
|
||||||
EXTIEnable(mpuIntIO, true);
|
EXTIEnable(mpuIntIO);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
void bmi270ExtiHandler(extiCallbackRec_t *cb)
|
void bmi270ExtiHandler(extiCallbackRec_t *cb)
|
||||||
|
|
|
@ -95,7 +95,7 @@ static void l3gd20IntExtiInit(gyroDev_t *gyro)
|
||||||
IOInit(mpuIntIO, OWNER_GYRO_EXTI, 0);
|
IOInit(mpuIntIO, OWNER_GYRO_EXTI, 0);
|
||||||
EXTIHandlerInit(&gyro->exti, l3gd20ExtiHandler);
|
EXTIHandlerInit(&gyro->exti, l3gd20ExtiHandler);
|
||||||
EXTIConfig(mpuIntIO, &gyro->exti, NVIC_PRIO_MPU_INT_EXTI, IOCFG_IN_FLOATING, BETAFLIGHT_EXTI_TRIGGER_RISING);
|
EXTIConfig(mpuIntIO, &gyro->exti, NVIC_PRIO_MPU_INT_EXTI, IOCFG_IN_FLOATING, BETAFLIGHT_EXTI_TRIGGER_RISING);
|
||||||
EXTIEnable(mpuIntIO, true);
|
EXTIEnable(mpuIntIO);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -160,7 +160,7 @@ static void lsm6dsoIntExtiInit(gyroDev_t *gyro)
|
||||||
IOInit(mpuIntIO, OWNER_GYRO_EXTI, 0);
|
IOInit(mpuIntIO, OWNER_GYRO_EXTI, 0);
|
||||||
EXTIHandlerInit(&gyro->exti, lsm6dsoExtiHandler);
|
EXTIHandlerInit(&gyro->exti, lsm6dsoExtiHandler);
|
||||||
EXTIConfig(mpuIntIO, &gyro->exti, NVIC_PRIO_MPU_INT_EXTI, IOCFG_IN_FLOATING, BETAFLIGHT_EXTI_TRIGGER_RISING);
|
EXTIConfig(mpuIntIO, &gyro->exti, NVIC_PRIO_MPU_INT_EXTI, IOCFG_IN_FLOATING, BETAFLIGHT_EXTI_TRIGGER_RISING);
|
||||||
EXTIEnable(mpuIntIO, true);
|
EXTIEnable(mpuIntIO);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -168,7 +168,7 @@ bool bmp085Detect(const bmp085Config_t *config, baroDev_t *baro)
|
||||||
IOInit(eocIO, OWNER_BARO_EOC, 0);
|
IOInit(eocIO, OWNER_BARO_EOC, 0);
|
||||||
EXTIHandlerInit(&exti, bmp085ExtiHandler);
|
EXTIHandlerInit(&exti, bmp085ExtiHandler);
|
||||||
EXTIConfig(eocIO, &exti, NVIC_PRIO_BARO_EXTI, IOCFG_IN_FLOATING, BETAFLIGHT_EXTI_TRIGGER_RISING);
|
EXTIConfig(eocIO, &exti, NVIC_PRIO_BARO_EXTI, IOCFG_IN_FLOATING, BETAFLIGHT_EXTI_TRIGGER_RISING);
|
||||||
EXTIEnable(eocIO, true);
|
EXTIEnable(eocIO);
|
||||||
#else
|
#else
|
||||||
UNUSED(config);
|
UNUSED(config);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -236,7 +236,7 @@ bool bmp388Detect(const bmp388Config_t *config, baroDev_t *baro)
|
||||||
IOInit(baroIntIO, OWNER_BARO_EOC, 0);
|
IOInit(baroIntIO, OWNER_BARO_EOC, 0);
|
||||||
EXTIHandlerInit(&baro->exti, bmp388_extiHandler);
|
EXTIHandlerInit(&baro->exti, bmp388_extiHandler);
|
||||||
EXTIConfig(baroIntIO, &baro->exti, NVIC_PRIO_BARO_EXTI, IOCFG_IN_FLOATING, BETAFLIGHT_EXTI_TRIGGER_RISING);
|
EXTIConfig(baroIntIO, &baro->exti, NVIC_PRIO_BARO_EXTI, IOCFG_IN_FLOATING, BETAFLIGHT_EXTI_TRIGGER_RISING);
|
||||||
EXTIEnable(baroIntIO, true);
|
EXTIEnable(baroIntIO);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
UNUSED(config);
|
UNUSED(config);
|
||||||
|
|
|
@ -178,8 +178,8 @@ static void hmc5883lConfigureDataReadyInterruptHandling(magDev_t* mag)
|
||||||
IOInit(magIntIO, OWNER_COMPASS_EXTI, 0);
|
IOInit(magIntIO, OWNER_COMPASS_EXTI, 0);
|
||||||
EXTIHandlerInit(&mag->exti, hmc5883_extiHandler);
|
EXTIHandlerInit(&mag->exti, hmc5883_extiHandler);
|
||||||
EXTIConfig(magIntIO, &mag->exti, NVIC_PRIO_MPU_INT_EXTI, IOCFG_IN_FLOATING, BETAFLIGHT_EXTI_TRIGGER_RISING);
|
EXTIConfig(magIntIO, &mag->exti, NVIC_PRIO_MPU_INT_EXTI, IOCFG_IN_FLOATING, BETAFLIGHT_EXTI_TRIGGER_RISING);
|
||||||
EXTIEnable(magIntIO, true);
|
EXTIEnable(magIntIO);
|
||||||
EXTIEnable(magIntIO, true);
|
EXTIEnable(magIntIO);
|
||||||
#else
|
#else
|
||||||
UNUSED(mag);
|
UNUSED(mag);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -186,7 +186,7 @@ void EXTIConfig(IO_t io, extiCallbackRec_t *cb, int irqPriority, ioConfig_t conf
|
||||||
void EXTIRelease(IO_t io)
|
void EXTIRelease(IO_t io)
|
||||||
{
|
{
|
||||||
// don't forget to match cleanup with config
|
// don't forget to match cleanup with config
|
||||||
EXTIEnable(io, false);
|
EXTIDisable(io);
|
||||||
|
|
||||||
const int chIdx = IO_GPIOPinIdx(io);
|
const int chIdx = IO_GPIOPinIdx(io);
|
||||||
|
|
||||||
|
@ -198,7 +198,7 @@ void EXTIRelease(IO_t io)
|
||||||
rec->handler = NULL;
|
rec->handler = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EXTIEnable(IO_t io, bool enable)
|
void EXTIEnable(IO_t io)
|
||||||
{
|
{
|
||||||
#if defined(STM32F1) || defined(STM32F4) || defined(STM32F7) || defined(STM32H7) || defined(STM32G4)
|
#if defined(STM32F1) || defined(STM32F4) || defined(STM32F7) || defined(STM32H7) || defined(STM32G4)
|
||||||
uint32_t extiLine = IO_EXTI_Line(io);
|
uint32_t extiLine = IO_EXTI_Line(io);
|
||||||
|
@ -207,11 +207,7 @@ void EXTIEnable(IO_t io, bool enable)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (enable) {
|
|
||||||
EXTI_REG_IMR |= extiLine;
|
EXTI_REG_IMR |= extiLine;
|
||||||
} else {
|
|
||||||
EXTI_REG_IMR &= ~extiLine;
|
|
||||||
}
|
|
||||||
#elif defined(STM32F303xC)
|
#elif defined(STM32F303xC)
|
||||||
|
|
||||||
int extiLine = IO_EXTI_Line(io);
|
int extiLine = IO_EXTI_Line(io);
|
||||||
|
@ -222,17 +218,41 @@ void EXTIEnable(IO_t io, bool enable)
|
||||||
|
|
||||||
// assume extiLine < 32 (valid for all EXTI pins)
|
// assume extiLine < 32 (valid for all EXTI pins)
|
||||||
|
|
||||||
if (enable) {
|
|
||||||
EXTI_REG_IMR |= 1 << extiLine;
|
EXTI_REG_IMR |= 1 << extiLine;
|
||||||
} else {
|
|
||||||
EXTI_REG_IMR &= ~(1 << extiLine);
|
|
||||||
EXTI_REG_PR = extiLine;
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
# error "Unknown CPU"
|
# error "Unknown CPU"
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void EXTIDisable(IO_t io)
|
||||||
|
{
|
||||||
|
#if defined(STM32F1) || defined(STM32F4) || defined(STM32F7) || defined(STM32H7) || defined(STM32G4)
|
||||||
|
uint32_t extiLine = IO_EXTI_Line(io);
|
||||||
|
|
||||||
|
if (!extiLine) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
EXTI_REG_IMR &= ~extiLine;
|
||||||
|
EXTI_REG_PR = extiLine;
|
||||||
|
#elif defined(STM32F303xC)
|
||||||
|
|
||||||
|
int extiLine = IO_EXTI_Line(io);
|
||||||
|
|
||||||
|
if (extiLine < 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// assume extiLine < 32 (valid for all EXTI pins)
|
||||||
|
|
||||||
|
EXTI_REG_IMR &= ~(1 << extiLine);
|
||||||
|
#else
|
||||||
|
# error "Unknown CPU"
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#define EXTI_EVENT_MASK 0xFFFF // first 16 bits only, see also definition of extiChannelRecs.
|
#define EXTI_EVENT_MASK 0xFFFF // first 16 bits only, see also definition of extiChannelRecs.
|
||||||
|
|
||||||
void EXTI_IRQHandler(uint32_t mask)
|
void EXTI_IRQHandler(uint32_t mask)
|
||||||
|
|
|
@ -42,4 +42,5 @@ void EXTIInit(void);
|
||||||
void EXTIHandlerInit(extiCallbackRec_t *cb, extiHandlerCallback *fn);
|
void EXTIHandlerInit(extiCallbackRec_t *cb, extiHandlerCallback *fn);
|
||||||
void EXTIConfig(IO_t io, extiCallbackRec_t *cb, int irqPriority, ioConfig_t config, extiTrigger_t trigger);
|
void EXTIConfig(IO_t io, extiCallbackRec_t *cb, int irqPriority, ioConfig_t config, extiTrigger_t trigger);
|
||||||
void EXTIRelease(IO_t io);
|
void EXTIRelease(IO_t io);
|
||||||
void EXTIEnable(IO_t io, bool enable);
|
void EXTIEnable(IO_t io);
|
||||||
|
void EXTIDisable(IO_t io);
|
||||||
|
|
|
@ -188,7 +188,7 @@ bool hcsr04Detect(rangefinderDev_t *dev, const sonarConfig_t * rangefinderHardwa
|
||||||
// Hardware detected - configure the driver
|
// Hardware detected - configure the driver
|
||||||
EXTIHandlerInit(&hcsr04_extiCallbackRec, hcsr04_extiHandler);
|
EXTIHandlerInit(&hcsr04_extiCallbackRec, hcsr04_extiHandler);
|
||||||
EXTIConfig(echoIO, &hcsr04_extiCallbackRec, NVIC_PRIO_SONAR_EXTI, IOCFG_IN_FLOATING, BETAFLIGHT_EXTI_TRIGGER_BOTH); // TODO - priority!
|
EXTIConfig(echoIO, &hcsr04_extiCallbackRec, NVIC_PRIO_SONAR_EXTI, IOCFG_IN_FLOATING, BETAFLIGHT_EXTI_TRIGGER_BOTH); // TODO - priority!
|
||||||
EXTIEnable(echoIO, true);
|
EXTIEnable(echoIO);
|
||||||
|
|
||||||
dev->delayMs = 100;
|
dev->delayMs = 100;
|
||||||
dev->maxRangeCm = HCSR04_MAX_RANGE_CM;
|
dev->maxRangeCm = HCSR04_MAX_RANGE_CM;
|
||||||
|
|
|
@ -138,7 +138,7 @@ void rxSpiExtiInit(ioConfig_t rxSpiExtiPinConfig, extiTrigger_t rxSpiExtiPinTrig
|
||||||
|
|
||||||
EXTIHandlerInit(&rxSpiExtiCallbackRec, rxSpiExtiHandler);
|
EXTIHandlerInit(&rxSpiExtiCallbackRec, rxSpiExtiHandler);
|
||||||
EXTIConfig(extiPin, &rxSpiExtiCallbackRec, NVIC_PRIO_RX_INT_EXTI, rxSpiExtiPinConfig, rxSpiExtiPinTrigger);
|
EXTIConfig(extiPin, &rxSpiExtiCallbackRec, NVIC_PRIO_RX_INT_EXTI, rxSpiExtiPinConfig, rxSpiExtiPinTrigger);
|
||||||
EXTIEnable(extiPin, true);
|
EXTIEnable(extiPin);
|
||||||
|
|
||||||
// Check that we've not missed the rising edge on the interrupt line
|
// Check that we've not missed the rising edge on the interrupt line
|
||||||
if (rxSpiGetExtiState()) {
|
if (rxSpiGetExtiState()) {
|
||||||
|
|
|
@ -106,7 +106,7 @@ static bool sx1280MarkBusy(void)
|
||||||
|
|
||||||
static void sx1280ClearBusyFn(void)
|
static void sx1280ClearBusyFn(void)
|
||||||
{
|
{
|
||||||
EXTIEnable(busy, false);
|
EXTIDisable(busy);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Switch to waiting for busy interrupt
|
// Switch to waiting for busy interrupt
|
||||||
|
@ -143,9 +143,9 @@ static void sx1280SetBusyFn(extiHandlerCallback *waitingFn)
|
||||||
sx1280Busy = IORead(busy);
|
sx1280Busy = IORead(busy);
|
||||||
if (sx1280Busy) {
|
if (sx1280Busy) {
|
||||||
EXTIHandlerInit(&busyIntContext.exti, waitingFn);
|
EXTIHandlerInit(&busyIntContext.exti, waitingFn);
|
||||||
EXTIEnable(busy, true);
|
EXTIEnable(busy);
|
||||||
} else {
|
} else {
|
||||||
EXTIEnable(busy, false);
|
EXTIDisable(busy);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -180,7 +180,9 @@ void EXTIHandlerInit(extiCallbackRec_t *, extiHandlerCallback *) {
|
||||||
void EXTIConfig(IO_t, extiCallbackRec_t *, int, ioConfig_t, extiTrigger_t) {
|
void EXTIConfig(IO_t, extiCallbackRec_t *, int, ioConfig_t, extiTrigger_t) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EXTIEnable(IO_t, bool) {
|
void EXTIEnable(IO_t) {
|
||||||
|
}
|
||||||
|
void EXTIDisable(IO_t) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue