1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-14 03:50:02 +03:00

Remove USE_EXTI, USE_GYRO_EXTI and USE_MPU_DATA_READY_SIGNAL defines

This commit is contained in:
Steve Evans 2022-05-05 21:52:33 +01:00
parent b28b07eb95
commit 4f9f26ef1c
121 changed files with 143 additions and 483 deletions

View file

@ -4804,14 +4804,12 @@ static void cliStatus(const char *cmdName, char *cmdline)
} }
} }
#ifdef USE_SPI #ifdef USE_SPI
#ifdef USE_GYRO_EXTI
if (gyroActiveDev()->gyroModeSPI != GYRO_EXTI_NO_INT) { if (gyroActiveDev()->gyroModeSPI != GYRO_EXTI_NO_INT) {
cliPrintf(" locked"); cliPrintf(" locked");
} }
if (gyroActiveDev()->gyroModeSPI == GYRO_EXTI_INT_DMA) { if (gyroActiveDev()->gyroModeSPI == GYRO_EXTI_INT_DMA) {
cliPrintf(" dma"); cliPrintf(" dma");
} }
#endif
if (spiGetExtDeviceCount(&gyroActiveDev()->dev) > 1) { if (spiGetExtDeviceCount(&gyroActiveDev()->dev) > 1) {
cliPrintf(" shared"); cliPrintf(" shared");
} }
@ -5201,9 +5199,7 @@ const cliResourceValue_t resourceTable[] = {
DEFS( OWNER_RX_SPI_EXPRESSLRS_BUSY, PG_RX_EXPRESSLRS_SPI_CONFIG, rxExpressLrsSpiConfig_t, busyIoTag ), DEFS( OWNER_RX_SPI_EXPRESSLRS_BUSY, PG_RX_EXPRESSLRS_SPI_CONFIG, rxExpressLrsSpiConfig_t, busyIoTag ),
#endif #endif
#endif #endif
#ifdef USE_GYRO_EXTI
DEFW( OWNER_GYRO_EXTI, PG_GYRO_DEVICE_CONFIG, gyroDeviceConfig_t, extiTag, MAX_GYRODEV_COUNT ), DEFW( OWNER_GYRO_EXTI, PG_GYRO_DEVICE_CONFIG, gyroDeviceConfig_t, extiTag, MAX_GYRODEV_COUNT ),
#endif
DEFW( OWNER_GYRO_CS, PG_GYRO_DEVICE_CONFIG, gyroDeviceConfig_t, csnTag, MAX_GYRODEV_COUNT ), DEFW( OWNER_GYRO_CS, PG_GYRO_DEVICE_CONFIG, gyroDeviceConfig_t, csnTag, MAX_GYRODEV_COUNT ),
#ifdef USE_USB_DETECT #ifdef USE_USB_DETECT
DEFS( OWNER_USB_DETECT, PG_USB_CONFIG, usbDev_t, detectPin ), DEFS( OWNER_USB_DETECT, PG_USB_CONFIG, usbDev_t, detectPin ),

View file

@ -109,14 +109,12 @@ typedef struct gyroDev_s {
sensor_align_e gyroAlign; sensor_align_e gyroAlign;
gyroRateKHz_e gyroRateKHz; gyroRateKHz_e gyroRateKHz;
gyroModeSPI_e gyroModeSPI; gyroModeSPI_e gyroModeSPI;
#ifdef USE_GYRO_EXTI
uint32_t detectedEXTI; uint32_t detectedEXTI;
uint32_t gyroLastEXTI; uint32_t gyroLastEXTI;
uint32_t gyroSyncEXTI; uint32_t gyroSyncEXTI;
int32_t gyroShortPeriod; int32_t gyroShortPeriod;
int32_t gyroDmaMaxDuration; int32_t gyroDmaMaxDuration;
busSegment_t segments[2]; busSegment_t segments[2];
#endif
volatile bool dataReady; volatile bool dataReady;
bool gyro_high_fsr; bool gyro_high_fsr;
uint8_t hardware_lpf; uint8_t hardware_lpf;

View file

@ -115,7 +115,6 @@ static void mpu6050FindRevision(gyroDev_t *gyro)
/* /*
* Gyro interrupt service routine * Gyro interrupt service routine
*/ */
#ifdef USE_GYRO_EXTI
#ifdef USE_SPI_GYRO #ifdef USE_SPI_GYRO
// Called in ISR context // Called in ISR context
// Gyro read has just completed // Gyro read has just completed
@ -181,7 +180,6 @@ static void mpuIntExtiInit(gyroDev_t *gyro)
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); EXTIEnable(mpuIntIO);
} }
#endif // USE_GYRO_EXTI
bool mpuAccRead(accDev_t *acc) bool mpuAccRead(accDev_t *acc)
{ {
@ -270,7 +268,7 @@ bool mpuGyroReadSPI(gyroDev_t *gyro)
{ {
// Initialise the tx buffer to all 0xff // Initialise the tx buffer to all 0xff
memset(gyro->dev.txBuf, 0xff, 16); memset(gyro->dev.txBuf, 0xff, 16);
#ifdef USE_GYRO_EXTI
// Check that minimum number of interrupts have been detected // Check that minimum number of interrupts have been detected
// We need some offset from the gyro interrupts to ensure sampling after the interrupt // We need some offset from the gyro interrupts to ensure sampling after the interrupt
@ -289,9 +287,7 @@ bool mpuGyroReadSPI(gyroDev_t *gyro)
// Interrupts are present, but no DMA // Interrupts are present, but no DMA
gyro->gyroModeSPI = GYRO_EXTI_INT; gyro->gyroModeSPI = GYRO_EXTI_INT;
} }
} else } else {
#endif
{
gyro->gyroModeSPI = GYRO_EXTI_NO_INT; gyro->gyroModeSPI = GYRO_EXTI_NO_INT;
} }
break; break;
@ -489,11 +485,7 @@ void mpuGyroInit(gyroDev_t *gyro)
{ {
gyro->accDataReg = MPU_RA_ACCEL_XOUT_H; gyro->accDataReg = MPU_RA_ACCEL_XOUT_H;
gyro->gyroDataReg = MPU_RA_GYRO_XOUT_H; gyro->gyroDataReg = MPU_RA_GYRO_XOUT_H;
#ifdef USE_GYRO_EXTI
mpuIntExtiInit(gyro); mpuIntExtiInit(gyro);
#else
UNUSED(gyro);
#endif
} }
uint8_t mpuGyroDLPF(gyroDev_t *gyro) uint8_t mpuGyroDLPF(gyroDev_t *gyro)

View file

@ -96,9 +96,7 @@ static void mpu6050GyroInit(gyroDev_t *gyro)
busWriteRegister(dev, MPU_RA_INT_PIN_CFG, busWriteRegister(dev, MPU_RA_INT_PIN_CFG,
0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0); // INT_PIN_CFG -- INT_LEVEL_HIGH, INT_OPEN_DIS, LATCH_INT_DIS, INT_RD_CLEAR_DIS, FSYNC_INT_LEVEL_HIGH, FSYNC_INT_DIS, I2C_BYPASS_EN, CLOCK_DIS 0 << 7 | 0 << 6 | 0 << 5 | 0 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0); // INT_PIN_CFG -- INT_LEVEL_HIGH, INT_OPEN_DIS, LATCH_INT_DIS, INT_RD_CLEAR_DIS, FSYNC_INT_LEVEL_HIGH, FSYNC_INT_DIS, I2C_BYPASS_EN, CLOCK_DIS
#ifdef USE_MPU_DATA_READY_SIGNAL busWriteRegister(&gyro->dev, MPU_RA_INT_ENABLE, MPU_RF_DATA_RDY_EN);
busWriteRegister(dev, MPU_RA_INT_ENABLE, MPU_RF_DATA_RDY_EN);
#endif
} }
bool mpu6050GyroDetect(gyroDev_t *gyro) bool mpu6050GyroDetect(gyroDev_t *gyro)

View file

@ -91,9 +91,7 @@ void mpu6500GyroInit(gyroDev_t *gyro)
#endif #endif
delay(15); delay(15);
#ifdef USE_MPU_DATA_READY_SIGNAL busWriteRegister(&gyro->dev, MPU_RA_INT_ENABLE, MPU6500_BIT_RAW_RDY_EN); // RAW_RDY_EN interrupt enable
busWriteRegister(dev, MPU_RA_INT_ENABLE, MPU6500_BIT_RAW_RDY_EN); // RAW_RDY_EN interrupt enable
#endif
delay(15); delay(15);
} }

View file

@ -120,8 +120,6 @@ uint8_t bmi160Detect(const extDevice_t *dev)
BMI160Detected = true; BMI160Detected = true;
spiSetClkDivisor(dev, spiCalculateDivider(BMI160_MAX_SPI_CLK_HZ));
return BMI_160_SPI; return BMI_160_SPI;
} }
@ -260,7 +258,6 @@ static int32_t BMI160_do_foc(const extDevice_t *dev)
extiCallbackRec_t bmi160IntCallbackRec; extiCallbackRec_t bmi160IntCallbackRec;
#ifdef USE_GYRO_EXTI
// Called in ISR context // Called in ISR context
// Gyro read has just completed // Gyro read has just completed
busStatus_e bmi160Intcallback(uint32_t arg) busStatus_e bmi160Intcallback(uint32_t arg)
@ -280,6 +277,8 @@ busStatus_e bmi160Intcallback(uint32_t arg)
void bmi160ExtiHandler(extiCallbackRec_t *cb) void bmi160ExtiHandler(extiCallbackRec_t *cb)
{ {
gyroDev_t *gyro = container_of(cb, gyroDev_t, exti); gyroDev_t *gyro = container_of(cb, gyroDev_t, exti);
extDevice_t *dev = &gyro->dev;
// Ideally we'd use a timer to capture such information, but unfortunately the port used for EXTI interrupt does // Ideally we'd use a timer to capture such information, but unfortunately the port used for EXTI interrupt does
// not have an associated timer // not have an associated timer
uint32_t nowCycles = getCycleCounter(); uint32_t nowCycles = getCycleCounter();
@ -287,7 +286,7 @@ void bmi160ExtiHandler(extiCallbackRec_t *cb)
gyro->gyroLastEXTI = nowCycles; gyro->gyroLastEXTI = nowCycles;
if (gyro->gyroModeSPI == GYRO_EXTI_INT_DMA) { if (gyro->gyroModeSPI == GYRO_EXTI_INT_DMA) {
spiSequence(&gyro->dev, gyro->segments); spiSequence(dev, gyro->segments);
} }
gyro->detectedEXTI++; gyro->detectedEXTI++;
@ -307,35 +306,29 @@ static void bmi160IntExtiInit(gyroDev_t *gyro)
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); EXTIEnable(mpuIntIO);
} }
#else
void bmi160ExtiHandler(extiCallbackRec_t *cb)
{
gyroDev_t *gyro = container_of(cb, gyroDev_t, exti);
gyro->dataReady = true;
}
#endif
static bool bmi160AccRead(accDev_t *acc) static bool bmi160AccRead(accDev_t *acc)
{ {
extDevice_t *dev = &acc->gyro->dev;
switch (acc->gyro->gyroModeSPI) { switch (acc->gyro->gyroModeSPI) {
case GYRO_EXTI_INT: case GYRO_EXTI_INT:
case GYRO_EXTI_NO_INT: case GYRO_EXTI_NO_INT:
{ {
acc->gyro->dev.txBuf[0] = BMI160_REG_ACC_DATA_X_LSB | 0x80; dev->txBuf[0] = BMI160_REG_ACC_DATA_X_LSB | 0x80;
busSegment_t segments[] = { busSegment_t segments[] = {
{.u.buffers = {NULL, NULL}, 7, true, NULL}, {.u.buffers = {NULL, NULL}, 7, true, NULL},
{.u.link = {NULL, NULL}, 0, true, NULL}, {.u.link = {NULL, NULL}, 0, true, NULL},
}; };
segments[0].u.buffers.txData = &acc->gyro->dev.txBuf[1]; segments[0].u.buffers.txData = &dev->txBuf[1];
segments[0].u.buffers.rxData = &acc->gyro->dev.rxBuf[1]; segments[0].u.buffers.rxData = &dev->rxBuf[1];
spiSequence(&acc->gyro->dev, &segments[0]); spiSequence(&acc->gyro->dev, &segments[0]);
// Wait for completion // Wait for completion
spiWait(&acc->gyro->dev); spiWait(&acc->gyro->dev);
uint16_t *accData = (uint16_t *)acc->gyro->dev.rxBuf; uint16_t *accData = (uint16_t *)dev->rxBuf;
acc->ADCRaw[X] = accData[1]; acc->ADCRaw[X] = accData[1];
acc->ADCRaw[Y] = accData[2]; acc->ADCRaw[Y] = accData[2];
acc->ADCRaw[Z] = accData[3]; acc->ADCRaw[Z] = accData[3];
@ -348,7 +341,7 @@ static bool bmi160AccRead(accDev_t *acc)
// up an old value. // up an old value.
// This data was read from the gyro, which is the same SPI device as the acc // This data was read from the gyro, which is the same SPI device as the acc
uint16_t *accData = (uint16_t *)acc->gyro->dev.rxBuf; uint16_t *accData = (uint16_t *)dev->rxBuf;
acc->ADCRaw[X] = accData[4]; acc->ADCRaw[X] = accData[4];
acc->ADCRaw[Y] = accData[5]; acc->ADCRaw[Y] = accData[5];
acc->ADCRaw[Z] = accData[6]; acc->ADCRaw[Z] = accData[6];
@ -366,35 +359,33 @@ static bool bmi160AccRead(accDev_t *acc)
static bool bmi160GyroRead(gyroDev_t *gyro) static bool bmi160GyroRead(gyroDev_t *gyro)
{ {
uint16_t *gyroData = (uint16_t *)gyro->dev.rxBuf; extDevice_t *dev = &gyro->dev;
uint16_t *gyroData = (uint16_t *)dev->rxBuf;
switch (gyro->gyroModeSPI) { switch (gyro->gyroModeSPI) {
case GYRO_EXTI_INIT: case GYRO_EXTI_INIT:
{ {
// Initialise the tx buffer to all 0x00 // Initialise the tx buffer to all 0x00
memset(gyro->dev.txBuf, 0x00, 14); memset(dev->txBuf, 0x00, 14);
#ifdef USE_GYRO_EXTI
// Check that minimum number of interrupts have been detected // Check that minimum number of interrupts have been detected
// We need some offset from the gyro interrupts to ensure sampling after the interrupt // We need some offset from the gyro interrupts to ensure sampling after the interrupt
gyro->gyroDmaMaxDuration = 5; gyro->gyroDmaMaxDuration = 5;
// Using DMA for gyro access upsets the scheduler on the F4 // Using DMA for gyro access upsets the scheduler on the F4
if (gyro->detectedEXTI > GYRO_EXTI_DETECT_THRESHOLD) { if (gyro->detectedEXTI > GYRO_EXTI_DETECT_THRESHOLD) {
if (spiUseDMA(&gyro->dev)) { if (spiUseDMA(dev)) {
gyro->dev.callbackArg = (uint32_t)gyro; dev->callbackArg = (uint32_t)gyro;
gyro->dev.txBuf[1] = BMI160_REG_GYR_DATA_X_LSB | 0x80; dev->txBuf[1] = BMI160_REG_GYR_DATA_X_LSB | 0x80;
gyro->segments[0].len = 14; gyro->segments[0].len = 14;
gyro->segments[0].callback = bmi160Intcallback; gyro->segments[0].callback = bmi160Intcallback;
gyro->segments[0].u.buffers.txData = &gyro->dev.txBuf[1]; gyro->segments[0].u.buffers.txData = dev.txBuf[1];
gyro->segments[0].u.buffers.rxData = &gyro->dev.rxBuf[1]; gyro->segments[0].u.buffers.rxData = dev.rxBuf[1];
gyro->segments[0].negateCS = true; gyro->segments[0].negateCS = true;
gyro->gyroModeSPI = GYRO_EXTI_INT_DMA; gyro->gyroModeSPI = GYRO_EXTI_INT_DMA;
} else { } else {
// Interrupts are present, but no DMA // Interrupts are present, but no DMA
gyro->gyroModeSPI = GYRO_EXTI_INT; gyro->gyroModeSPI = GYRO_EXTI_INT;
} }
} else } else {
#endif
{
gyro->gyroModeSPI = GYRO_EXTI_NO_INT; gyro->gyroModeSPI = GYRO_EXTI_NO_INT;
} }
break; break;
@ -403,19 +394,19 @@ static bool bmi160GyroRead(gyroDev_t *gyro)
case GYRO_EXTI_INT: case GYRO_EXTI_INT:
case GYRO_EXTI_NO_INT: case GYRO_EXTI_NO_INT:
{ {
gyro->dev.txBuf[1] = BMI160_REG_GYR_DATA_X_LSB | 0x80; dev->txBuf[1] = BMI160_REG_GYR_DATA_X_LSB | 0x80;
busSegment_t segments[] = { busSegment_t segments[] = {
{.u.buffers = {NULL, NULL}, 7, true, NULL}, {.u.buffers = {NULL, NULL}, 7, true, NULL},
{.u.link = {NULL, NULL}, 0, true, NULL}, {.u.link = {NULL, NULL}, 0, true, NULL},
}; };
segments[0].u.buffers.txData = &gyro->dev.txBuf[1]; segments[0].u.buffers.txData = dev.txBuf[1];
segments[0].u.buffers.rxData = &gyro->dev.rxBuf[1]; segments[0].u.buffers.rxData = dev.rxBuf[1];
spiSequence(&gyro->dev, &segments[0]); spiSequence(dev, &segments[0]);
// Wait for completion // Wait for completion
spiWait(&gyro->dev); spiWait(dev);
// Fall through // Fall through
FALLTHROUGH; FALLTHROUGH;
@ -441,10 +432,10 @@ static bool bmi160GyroRead(gyroDev_t *gyro)
void bmi160SpiGyroInit(gyroDev_t *gyro) void bmi160SpiGyroInit(gyroDev_t *gyro)
{ {
BMI160_Init(&gyro->dev); extDevice_t *dev = &gyro->dev;
#if defined(USE_GYRO_EXTI)
BMI160_Init(dev);
bmi160IntExtiInit(gyro); bmi160IntExtiInit(gyro);
#endif
spiSetClkDivisor(dev, spiCalculateDivider(BMI160_MAX_SPI_CLK_HZ)); spiSetClkDivisor(dev, spiCalculateDivider(BMI160_MAX_SPI_CLK_HZ));
} }

View file

@ -273,7 +273,6 @@ extiCallbackRec_t bmi270IntCallbackRec;
/* /*
* Gyro interrupt service routine * Gyro interrupt service routine
*/ */
#ifdef USE_GYRO_EXTI
// Called in ISR context // Called in ISR context
// Gyro read has just completed // Gyro read has just completed
busStatus_e bmi270Intcallback(uint32_t arg) busStatus_e bmi270Intcallback(uint32_t arg)
@ -293,6 +292,8 @@ busStatus_e bmi270Intcallback(uint32_t arg)
void bmi270ExtiHandler(extiCallbackRec_t *cb) void bmi270ExtiHandler(extiCallbackRec_t *cb)
{ {
gyroDev_t *gyro = container_of(cb, gyroDev_t, exti); gyroDev_t *gyro = container_of(cb, gyroDev_t, exti);
extDevice_t *dev = &gyro->dev;
// Ideally we'd use a timer to capture such information, but unfortunately the port used for EXTI interrupt does // Ideally we'd use a timer to capture such information, but unfortunately the port used for EXTI interrupt does
// not have an associated timer // not have an associated timer
uint32_t nowCycles = getCycleCounter(); uint32_t nowCycles = getCycleCounter();
@ -300,7 +301,7 @@ void bmi270ExtiHandler(extiCallbackRec_t *cb)
gyro->gyroLastEXTI = nowCycles; gyro->gyroLastEXTI = nowCycles;
if (gyro->gyroModeSPI == GYRO_EXTI_INT_DMA) { if (gyro->gyroModeSPI == GYRO_EXTI_INT_DMA) {
spiSequence(&gyro->dev, gyro->segments); spiSequence(dev, gyro->segments);
} }
gyro->detectedEXTI++; gyro->detectedEXTI++;
@ -320,28 +321,23 @@ static void bmi270IntExtiInit(gyroDev_t *gyro)
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); EXTIEnable(mpuIntIO);
} }
#else
void bmi270ExtiHandler(extiCallbackRec_t *cb)
{
gyroDev_t *gyro = container_of(cb, gyroDev_t, exti);
gyro->dataReady = true;
}
#endif
static bool bmi270AccRead(accDev_t *acc) static bool bmi270AccRead(accDev_t *acc)
{ {
extDevice_t *dev = &acc->gyro->dev;
switch (acc->gyro->gyroModeSPI) { switch (acc->gyro->gyroModeSPI) {
case GYRO_EXTI_INT: case GYRO_EXTI_INT:
case GYRO_EXTI_NO_INT: case GYRO_EXTI_NO_INT:
{ {
acc->gyro->dev.txBuf[0] = BMI270_REG_ACC_DATA_X_LSB | 0x80; dev->txBuf[0] = BMI270_REG_ACC_DATA_X_LSB | 0x80;
busSegment_t segments[] = { busSegment_t segments[] = {
{.u.buffers = {NULL, NULL}, 8, true, NULL}, {.u.buffers = {NULL, NULL}, 8, true, NULL},
{.u.link = {NULL, NULL}, 0, true, NULL}, {.u.link = {NULL, NULL}, 0, true, NULL},
}; };
segments[0].u.buffers.txData = acc->gyro->dev.txBuf; segments[0].u.buffers.txData = dev->txBuf;
segments[0].u.buffers.rxData = acc->gyro->dev.rxBuf; segments[0].u.buffers.rxData = dev->rxBuf;
spiSequence(&acc->gyro->dev, &segments[0]); spiSequence(&acc->gyro->dev, &segments[0]);
@ -358,7 +354,7 @@ static bool bmi270AccRead(accDev_t *acc)
// up an old value. // up an old value.
// This data was read from the gyro, which is the same SPI device as the acc // This data was read from the gyro, which is the same SPI device as the acc
uint16_t *accData = (uint16_t *)acc->gyro->dev.rxBuf; uint16_t *accData = (uint16_t *)dev->rxBuf;
acc->ADCRaw[X] = accData[1]; acc->ADCRaw[X] = accData[1];
acc->ADCRaw[Y] = accData[2]; acc->ADCRaw[Y] = accData[2];
acc->ADCRaw[Z] = accData[3]; acc->ADCRaw[Z] = accData[3];
@ -375,35 +371,35 @@ static bool bmi270AccRead(accDev_t *acc)
static bool bmi270GyroReadRegister(gyroDev_t *gyro) static bool bmi270GyroReadRegister(gyroDev_t *gyro)
{ {
uint16_t *gyroData = (uint16_t *)gyro->dev.rxBuf; extDevice_t *dev = &gyro->dev;
uint16_t *gyroData = (uint16_t *)dev->rxBuf;
switch (gyro->gyroModeSPI) { switch (gyro->gyroModeSPI) {
case GYRO_EXTI_INIT: case GYRO_EXTI_INIT:
{ {
// Initialise the tx buffer to all 0x00 // Initialise the tx buffer to all 0x00
memset(gyro->dev.txBuf, 0x00, 14); memset(dev->txBuf, 0x00, 14);
#ifdef USE_GYRO_EXTI
// Check that minimum number of interrupts have been detected // Check that minimum number of interrupts have been detected
// We need some offset from the gyro interrupts to ensure sampling after the interrupt // We need some offset from the gyro interrupts to ensure sampling after the interrupt
gyro->gyroDmaMaxDuration = 5; gyro->gyroDmaMaxDuration = 5;
// Using DMA for gyro access upsets the scheduler on the F4 // Using DMA for gyro access upsets the scheduler on the F4
if (gyro->detectedEXTI > GYRO_EXTI_DETECT_THRESHOLD) { if (gyro->detectedEXTI > GYRO_EXTI_DETECT_THRESHOLD) {
if (spiUseDMA(&gyro->dev)) { if (spiUseDMA(dev)) {
gyro->dev.callbackArg = (uint32_t)gyro; dev->callbackArg = (uint32_t)gyro;
gyro->dev.txBuf[0] = BMI270_REG_ACC_DATA_X_LSB | 0x80; dev->txBuf[0] = BMI270_REG_ACC_DATA_X_LSB | 0x80;
gyro->segments[0].len = 14; gyro->segments[0].len = 14;
gyro->segments[0].callback = bmi270Intcallback; gyro->segments[0].callback = bmi270Intcallback;
gyro->segments[0].u.buffers.txData = gyro->dev.txBuf; gyro->segments[0].u.buffers.txData = dev->txBuf;
gyro->segments[0].u.buffers.rxData = gyro->dev.rxBuf; gyro->segments[0].u.buffers.rxData = dev->rxBuf;
gyro->segments[0].negateCS = true; gyro->segments[0].negateCS = true;
gyro->gyroModeSPI = GYRO_EXTI_INT_DMA; gyro->gyroModeSPI = GYRO_EXTI_INT_DMA;
} else { } else {
// Interrupts are present, but no DMA // Interrupts are present, but no DMA
gyro->gyroModeSPI = GYRO_EXTI_INT; gyro->gyroModeSPI = GYRO_EXTI_INT;
} }
} else } else {
#endif
{
gyro->gyroModeSPI = GYRO_EXTI_NO_INT; gyro->gyroModeSPI = GYRO_EXTI_NO_INT;
} }
break; break;
@ -412,19 +408,19 @@ static bool bmi270GyroReadRegister(gyroDev_t *gyro)
case GYRO_EXTI_INT: case GYRO_EXTI_INT:
case GYRO_EXTI_NO_INT: case GYRO_EXTI_NO_INT:
{ {
gyro->dev.txBuf[0] = BMI270_REG_GYR_DATA_X_LSB | 0x80; dev->txBuf[0] = BMI270_REG_GYR_DATA_X_LSB | 0x80;
busSegment_t segments[] = { busSegment_t segments[] = {
{.u.buffers = {NULL, NULL}, 8, true, NULL}, {.u.buffers = {NULL, NULL}, 8, true, NULL},
{.u.link = {NULL, NULL}, 0, true, NULL}, {.u.link = {NULL, NULL}, 0, true, NULL},
}; };
segments[0].u.buffers.txData = gyro->dev.txBuf; segments[0].u.buffers.txData = dev->txBuf;
segments[0].u.buffers.rxData = gyro->dev.rxBuf; segments[0].u.buffers.rxData = dev->rxBuf;
spiSequence(&gyro->dev, &segments[0]); spiSequence(dev, &segments[0]);
// Wait for completion // Wait for completion
spiWait(&gyro->dev); spiWait(dev);
gyro->gyroADCRaw[X] = gyroData[1]; gyro->gyroADCRaw[X] = gyroData[1];
gyro->gyroADCRaw[Y] = gyroData[2]; gyro->gyroADCRaw[Y] = gyroData[2];
@ -533,9 +529,7 @@ static void bmi270SpiGyroInit(gyroDev_t *gyro)
bmi270Config(gyro); bmi270Config(gyro);
#if defined(USE_GYRO_EXTI)
bmi270IntExtiInit(gyro); bmi270IntExtiInit(gyro);
#endif
spiSetClkDivisor(dev, spiCalculateDivider(BMI270_MAX_SPI_CLK_HZ)); spiSetClkDivisor(dev, spiCalculateDivider(BMI270_MAX_SPI_CLK_HZ));
} }

View file

@ -77,8 +77,6 @@ void icm20649AccInit(accDev_t *acc)
// 1,024 LSB/g 30g // 1,024 LSB/g 30g
acc->acc_1G = acc->acc_high_fsr ? 1024 : 2048; acc->acc_1G = acc->acc_high_fsr ? 1024 : 2048;
spiSetClkDivisor(&acc->dev, spiCalculateDivider(ICM20649_MAX_SPI_CLK_HZ));
spiWriteReg(&acc->dev, ICM20649_RA_REG_BANK_SEL, 2 << 4); // config in bank 2 spiWriteReg(&acc->dev, ICM20649_RA_REG_BANK_SEL, 2 << 4); // config in bank 2
delay(15); delay(15);
const uint8_t acc_fsr = acc->acc_high_fsr ? ICM20649_FSR_30G : ICM20649_FSR_16G; const uint8_t acc_fsr = acc->acc_high_fsr ? ICM20649_FSR_30G : ICM20649_FSR_16G;
@ -136,9 +134,7 @@ void icm20649GyroInit(gyroDev_t *gyro)
spiWriteReg(&gyro->bus, ICM20649_RA_INT_PIN_CFG, 0x11); // INT_ANYRD_2CLEAR, BYPASS_EN spiWriteReg(&gyro->bus, ICM20649_RA_INT_PIN_CFG, 0x11); // INT_ANYRD_2CLEAR, BYPASS_EN
delay(15); delay(15);
#ifdef USE_MPU_DATA_READY_SIGNAL
spiWriteReg(&gyro->bus, ICM20649_RA_INT_ENABLE_1, 0x01); spiWriteReg(&gyro->bus, ICM20649_RA_INT_ENABLE_1, 0x01);
#endif
} }
bool icm20649SpiGyroDetect(gyroDev_t *gyro) bool icm20649SpiGyroDetect(gyroDev_t *gyro)

View file

@ -147,25 +147,25 @@ bool icm20689SpiAccDetect(accDev_t *acc)
void icm20689GyroInit(gyroDev_t *gyro) void icm20689GyroInit(gyroDev_t *gyro)
{ {
spiSetClkDivisor(&gyro->dev, spiCalculateDivider(ICM20689_MAX_SPI_CLK_HZ)); extDevice_t *dev = &gyro->dev;
spiSetClkDivisor(dev, spiCalculateDivider(ICM20689_MAX_SPI_CLK_HZ));
mpuGyroInit(gyro); mpuGyroInit(gyro);
// Device was already reset during detection so proceed with configuration // Device was already reset during detection so proceed with configuration
spiWriteReg(&gyro->dev, MPU_RA_PWR_MGMT_1, INV_CLK_PLL); spiWriteReg(dev, MPU_RA_PWR_MGMT_1, INV_CLK_PLL);
delayMicroseconds(ICM20689_CLKSEL_SETTLE_US); delayMicroseconds(ICM20689_CLKSEL_SETTLE_US);
spiWriteReg(&gyro->dev, MPU_RA_GYRO_CONFIG, INV_FSR_2000DPS << 3); spiWriteReg(dev, MPU_RA_GYRO_CONFIG, INV_FSR_2000DPS << 3);
spiWriteReg(&gyro->dev, MPU_RA_ACCEL_CONFIG, INV_FSR_16G << 3); spiWriteReg(dev, MPU_RA_ACCEL_CONFIG, INV_FSR_16G << 3);
spiWriteReg(&gyro->dev, MPU_RA_CONFIG, mpuGyroDLPF(gyro)); spiWriteReg(dev, MPU_RA_CONFIG, mpuGyroDLPF(gyro));
spiWriteReg(&gyro->dev, MPU_RA_SMPLRT_DIV, gyro->mpuDividerDrops); spiWriteReg(dev, MPU_RA_SMPLRT_DIV, gyro->mpuDividerDrops);
// Data ready interrupt configuration // Data ready interrupt configuration
spiWriteReg(&gyro->dev, MPU_RA_INT_PIN_CFG, ICM20689_INT_ANYRD_2CLEAR); spiWriteReg(dev, MPU_RA_INT_PIN_CFG, ICM20689_INT_ANYRD_2CLEAR);
#ifdef USE_MPU_DATA_READY_SIGNAL spiWriteReg(dev, MPU_RA_INT_ENABLE, MPU_RF_DATA_RDY_EN);
spiWriteReg(&gyro->dev, MPU_RA_INT_ENABLE, MPU_RF_DATA_RDY_EN);
#endif
} }
bool icm20689SpiGyroDetect(gyroDev_t *gyro) bool icm20689SpiGyroDetect(gyroDev_t *gyro)

View file

@ -160,6 +160,7 @@ static odrEntry_t icm426xxPkhzToSupportedODRMap[] = {
void icm426xxGyroInit(gyroDev_t *gyro) void icm426xxGyroInit(gyroDev_t *gyro)
{ {
const extDevice_t *dev = &gyro->dev; const extDevice_t *dev = &gyro->dev;
spiSetClkDivisor(dev, spiCalculateDivider(ICM426XX_MAX_SPI_CLK_HZ)); spiSetClkDivisor(dev, spiCalculateDivider(ICM426XX_MAX_SPI_CLK_HZ));
mpuGyroInit(gyro); mpuGyroInit(gyro);
@ -202,7 +203,6 @@ void icm426xxGyroInit(gyroDev_t *gyro)
spiWriteReg(dev, ICM426XX_RA_INT_CONFIG, ICM426XX_INT1_MODE_PULSED | ICM426XX_INT1_DRIVE_CIRCUIT_PP | ICM426XX_INT1_POLARITY_ACTIVE_HIGH); spiWriteReg(dev, ICM426XX_RA_INT_CONFIG, ICM426XX_INT1_MODE_PULSED | ICM426XX_INT1_DRIVE_CIRCUIT_PP | ICM426XX_INT1_POLARITY_ACTIVE_HIGH);
spiWriteReg(dev, ICM426XX_RA_INT_CONFIG0, ICM426XX_UI_DRDY_INT_CLEAR_ON_SBR); spiWriteReg(dev, ICM426XX_RA_INT_CONFIG0, ICM426XX_UI_DRDY_INT_CLEAR_ON_SBR);
#ifdef USE_MPU_DATA_READY_SIGNAL
spiWriteReg(dev, ICM426XX_RA_INT_SOURCE0, ICM426XX_UI_DRDY_INT1_EN_ENABLED); spiWriteReg(dev, ICM426XX_RA_INT_SOURCE0, ICM426XX_UI_DRDY_INT1_EN_ENABLED);
uint8_t intConfig1Value = spiReadRegMsk(dev, ICM426XX_RA_INT_CONFIG1); uint8_t intConfig1Value = spiReadRegMsk(dev, ICM426XX_RA_INT_CONFIG1);
@ -211,7 +211,6 @@ void icm426xxGyroInit(gyroDev_t *gyro)
intConfig1Value |= (ICM426XX_INT_TPULSE_DURATION_8 | ICM426XX_INT_TDEASSERT_DISABLED); intConfig1Value |= (ICM426XX_INT_TPULSE_DURATION_8 | ICM426XX_INT_TDEASSERT_DISABLED);
spiWriteReg(dev, ICM426XX_RA_INT_CONFIG1, intConfig1Value); spiWriteReg(dev, ICM426XX_RA_INT_CONFIG1, intConfig1Value);
#endif
} }
bool icm426xxSpiGyroDetect(gyroDev_t *gyro) bool icm426xxSpiGyroDetect(gyroDev_t *gyro)

View file

@ -77,7 +77,6 @@
#define BOOT ((uint8_t)0x80) #define BOOT ((uint8_t)0x80)
#if defined(USE_MPU_DATA_READY_SIGNAL)
static void l3gd20ExtiHandler(extiCallbackRec_t *cb) static void l3gd20ExtiHandler(extiCallbackRec_t *cb)
{ {
gyroDev_t *gyro = container_of(cb, gyroDev_t, exti); gyroDev_t *gyro = container_of(cb, gyroDev_t, exti);
@ -97,35 +96,34 @@ static void l3gd20IntExtiInit(gyroDev_t *gyro)
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); EXTIEnable(mpuIntIO);
} }
#endif
void l3gd20GyroInit(gyroDev_t *gyro) void l3gd20GyroInit(gyroDev_t *gyro)
{ {
spiSetClkDivisor(&gyro->dev, spiCalculateDivider(L3GD20_MAX_SPI_CLK_HZ)); extDevice_t *dev = &gyro->dev;
spiWriteReg(&gyro->dev, CTRL_REG5_ADDR, BOOT); spiSetClkDivisor(dev, spiCalculateDivider(L3GD20_MAX_SPI_CLK_HZ));
spiWriteReg(dev, CTRL_REG5_ADDR, BOOT);
delayMicroseconds(100); delayMicroseconds(100);
spiWriteReg(&gyro->dev, CTRL_REG1_ADDR, MODE_ACTIVE | OUTPUT_DATARATE_3 | AXES_ENABLE | BANDWIDTH_3); spiWriteReg(dev, CTRL_REG1_ADDR, MODE_ACTIVE | OUTPUT_DATARATE_3 | AXES_ENABLE | BANDWIDTH_3);
delayMicroseconds(1); delayMicroseconds(1);
spiWriteReg(&gyro->dev, CTRL_REG4_ADDR, BLOCK_DATA_UPDATE_CONTINUOUS | BLE_MSB | FULLSCALE_2000); spiWriteReg(dev, CTRL_REG4_ADDR, BLOCK_DATA_UPDATE_CONTINUOUS | BLE_MSB | FULLSCALE_2000);
delay(100); delay(100);
#if defined(USE_MPU_DATA_READY_SIGNAL)
l3gd20IntExtiInit(gyro); l3gd20IntExtiInit(gyro);
#endif
} }
static bool l3gd20GyroRead(gyroDev_t *gyro) static bool l3gd20GyroRead(gyroDev_t *gyro)
{ {
uint8_t buf[6]; uint8_t buf[6];
extDevice_t *dev = &gyro->dev;
const bool ack = spiReadRegMskBufRB(&gyro->dev, OUT_X_L_ADDR | READ_CMD | MULTIPLEBYTE_CMD,buf, sizeof(buf)); const bool ack = spiReadRegMskBufRB(dev, OUT_X_L_ADDR | READ_CMD | MULTIPLEBYTE_CMD,buf, sizeof(buf));
if (!ack) { if (!ack) {
return false; return false;
} }

View file

@ -32,13 +32,11 @@
#include "drivers/io.h" #include "drivers/io.h"
#include "drivers/io_impl.h" #include "drivers/io_impl.h"
#if defined(USE_GYRO_EXTI) && defined(USE_MPU_DATA_READY_SIGNAL)
void lsm6dsoExtiHandler(extiCallbackRec_t *cb) void lsm6dsoExtiHandler(extiCallbackRec_t *cb)
{ {
gyroDev_t *gyro = container_of(cb, gyroDev_t, exti); gyroDev_t *gyro = container_of(cb, gyroDev_t, exti);
gyro->dataReady = true; gyro->dataReady = true;
} }
#endif
bool lsm6dsoAccRead(accDev_t *acc) bool lsm6dsoAccRead(accDev_t *acc)
{ {

View file

@ -147,7 +147,6 @@ static void lsm6dsoConfig(gyroDev_t *gyro)
lsm6dsoWriteRegisterBits(dev, LSM6DSO_REG_CTRL9_XL, LSM6DSO_MASK_CTRL9_XL, LSM6DSO_VAL_CTRL9_XL_I3C_DISABLE, 1); lsm6dsoWriteRegisterBits(dev, LSM6DSO_REG_CTRL9_XL, LSM6DSO_MASK_CTRL9_XL, LSM6DSO_VAL_CTRL9_XL_I3C_DISABLE, 1);
} }
#if defined(USE_GYRO_EXTI) && defined(USE_MPU_DATA_READY_SIGNAL)
static void lsm6dsoIntExtiInit(gyroDev_t *gyro) static void lsm6dsoIntExtiInit(gyroDev_t *gyro)
{ {
if (gyro->mpuIntExtiTag == IO_TAG_NONE) { if (gyro->mpuIntExtiTag == IO_TAG_NONE) {
@ -161,7 +160,6 @@ static void lsm6dsoIntExtiInit(gyroDev_t *gyro)
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); EXTIEnable(mpuIntIO);
} }
#endif
static void lsm6dsoSpiGyroInit(gyroDev_t *gyro) static void lsm6dsoSpiGyroInit(gyroDev_t *gyro)
{ {
@ -169,9 +167,7 @@ static void lsm6dsoSpiGyroInit(gyroDev_t *gyro)
lsm6dsoConfig(gyro); lsm6dsoConfig(gyro);
#if defined(USE_GYRO_EXTI) && defined(USE_MPU_DATA_READY_SIGNAL)
lsm6dsoIntExtiInit(gyro); lsm6dsoIntExtiInit(gyro);
#endif
spiSetClkDivisor(dev, spiCalculateDivider(LSM6DSO_MAX_SPI_CLK_HZ)); spiSetClkDivisor(dev, spiCalculateDivider(LSM6DSO_MAX_SPI_CLK_HZ));
} }

View file

@ -103,15 +103,17 @@ static void mpu6000AccAndGyroInit(gyroDev_t *gyro);
void mpu6000SpiGyroInit(gyroDev_t *gyro) void mpu6000SpiGyroInit(gyroDev_t *gyro)
{ {
extDevice_t *dev = &gyro->dev;
mpuGyroInit(gyro); mpuGyroInit(gyro);
mpu6000AccAndGyroInit(gyro); mpu6000AccAndGyroInit(gyro);
// Accel and Gyro DLPF Setting // Accel and Gyro DLPF Setting
spiWriteReg(&gyro->dev, MPU6000_CONFIG, mpuGyroDLPF(gyro)); spiWriteReg(dev, MPU6000_CONFIG, mpuGyroDLPF(gyro));
delayMicroseconds(1); delayMicroseconds(1);
spiSetClkDivisor(&gyro->dev, spiCalculateDivider(MPU6000_MAX_SPI_CLK_HZ)); spiSetClkDivisor(dev, spiCalculateDivider(MPU6000_MAX_SPI_CLK_HZ));
mpuGyroRead(gyro); mpuGyroRead(gyro);
@ -167,39 +169,39 @@ uint8_t mpu6000SpiDetect(const extDevice_t *dev)
static void mpu6000AccAndGyroInit(gyroDev_t *gyro) static void mpu6000AccAndGyroInit(gyroDev_t *gyro)
{ {
extDevice_t *dev = &gyro->dev;
// Device was already reset during detection so proceed with configuration // Device was already reset during detection so proceed with configuration
// Clock Source PPL with Z axis gyro reference // Clock Source PPL with Z axis gyro reference
spiWriteReg(&gyro->dev, MPU_RA_PWR_MGMT_1, MPU_CLK_SEL_PLLGYROZ); spiWriteReg(dev, MPU_RA_PWR_MGMT_1, MPU_CLK_SEL_PLLGYROZ);
delayMicroseconds(15); delayMicroseconds(15);
// Disable Primary I2C Interface // Disable Primary I2C Interface
spiWriteReg(&gyro->dev, MPU_RA_USER_CTRL, BIT_I2C_IF_DIS); spiWriteReg(dev, MPU_RA_USER_CTRL, BIT_I2C_IF_DIS);
delayMicroseconds(15); delayMicroseconds(15);
spiWriteReg(&gyro->dev, MPU_RA_PWR_MGMT_2, 0x00); spiWriteReg(dev, MPU_RA_PWR_MGMT_2, 0x00);
delayMicroseconds(15); delayMicroseconds(15);
// Accel Sample Rate 1kHz // Accel Sample Rate 1kHz
// Gyroscope Output Rate = 1kHz when the DLPF is enabled // Gyroscope Output Rate = 1kHz when the DLPF is enabled
spiWriteReg(&gyro->dev, MPU_RA_SMPLRT_DIV, gyro->mpuDividerDrops); spiWriteReg(dev, MPU_RA_SMPLRT_DIV, gyro->mpuDividerDrops);
delayMicroseconds(15); delayMicroseconds(15);
// Gyro +/- 2000 DPS Full Scale // Gyro +/- 2000 DPS Full Scale
spiWriteReg(&gyro->dev, MPU_RA_GYRO_CONFIG, INV_FSR_2000DPS << 3); spiWriteReg(dev, MPU_RA_GYRO_CONFIG, INV_FSR_2000DPS << 3);
delayMicroseconds(15); delayMicroseconds(15);
// Accel +/- 16 G Full Scale // Accel +/- 16 G Full Scale
spiWriteReg(&gyro->dev, MPU_RA_ACCEL_CONFIG, INV_FSR_16G << 3); spiWriteReg(dev, MPU_RA_ACCEL_CONFIG, INV_FSR_16G << 3);
delayMicroseconds(15); delayMicroseconds(15);
spiWriteReg(&gyro->dev, MPU_RA_INT_PIN_CFG, 0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0); // INT_ANYRD_2CLEAR spiWriteReg(dev, MPU_RA_INT_PIN_CFG, 0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 0 << 1 | 0 << 0); // INT_ANYRD_2CLEAR
delayMicroseconds(15); delayMicroseconds(15);
#ifdef USE_MPU_DATA_READY_SIGNAL spiWriteReg(dev, MPU_RA_INT_ENABLE, MPU_RF_DATA_RDY_EN);
spiWriteReg(&gyro->dev, MPU_RA_INT_ENABLE, MPU_RF_DATA_RDY_EN);
delayMicroseconds(15); delayMicroseconds(15);
#endif
} }
bool mpu6000SpiAccDetect(accDev_t *acc) bool mpu6000SpiAccDetect(accDev_t *acc)
@ -223,9 +225,8 @@ bool mpu6000SpiGyroDetect(gyroDev_t *gyro)
gyro->initFn = mpu6000SpiGyroInit; gyro->initFn = mpu6000SpiGyroInit;
gyro->readFn = mpuGyroReadSPI; gyro->readFn = mpuGyroReadSPI;
gyro->scale = GYRO_SCALE_2000DPS; gyro->scale = GYRO_SCALE_2000DPS;
#ifdef USE_GYRO_EXTI
gyro->gyroShortPeriod = clockMicrosToCycles(MPU6000_SHORT_THRESHOLD); gyro->gyroShortPeriod = clockMicrosToCycles(MPU6000_SHORT_THRESHOLD);
#endif
return true; return true;
} }

View file

@ -82,8 +82,6 @@ uint8_t mpu6500SpiDetect(const extDevice_t *dev)
return mpuDetected; return mpuDetected;
} }
spiSetClkDivisor(dev, spiCalculateDivider(MPU6500_MAX_SPI_CLK_HZ));
return mpuDetected; return mpuDetected;
} }
@ -94,13 +92,15 @@ void mpu6500SpiAccInit(accDev_t *acc)
void mpu6500SpiGyroInit(gyroDev_t *gyro) void mpu6500SpiGyroInit(gyroDev_t *gyro)
{ {
extDevice_t *dev = &gyro->dev;
mpu6500GyroInit(gyro); mpu6500GyroInit(gyro);
// Disable Primary I2C Interface // Disable Primary I2C Interface
spiWriteReg(&gyro->dev, MPU_RA_USER_CTRL, MPU6500_BIT_I2C_IF_DIS); spiWriteReg(dev, MPU_RA_USER_CTRL, MPU6500_BIT_I2C_IF_DIS);
delay(100); delay(100);
spiSetClkDivisor(&gyro->dev, spiCalculateDivider(MPU6500_MAX_SPI_CLK_HZ)); spiSetClkDivisor(dev, spiCalculateDivider(MPU6500_MAX_SPI_CLK_HZ));
delayMicroseconds(1); delayMicroseconds(1);
} }

View file

@ -70,11 +70,13 @@ static bool mpu9250SpiSlowReadRegisterBuffer(const extDevice_t *dev, uint8_t reg
void mpu9250SpiGyroInit(gyroDev_t *gyro) void mpu9250SpiGyroInit(gyroDev_t *gyro)
{ {
extDevice_t *dev = &gyro->dev;
mpuGyroInit(gyro); mpuGyroInit(gyro);
mpu9250AccAndGyroInit(gyro); mpu9250AccAndGyroInit(gyro);
spiSetClkDivisor(&gyro->dev, spiCalculateDivider(MPU9250_MAX_SPI_CLK_HZ)); //high speed now that we don't need to write to the slow registers spiSetClkDivisor(dev, spiCalculateDivider(MPU9250_MAX_SPI_CLK_HZ)); //high speed now that we don't need to write to the slow registers
mpuGyroRead(gyro); mpuGyroRead(gyro);
@ -109,25 +111,23 @@ bool mpu9250SpiWriteRegisterVerify(const extDevice_t *dev, uint8_t reg, uint8_t
static void mpu9250AccAndGyroInit(gyroDev_t *gyro) static void mpu9250AccAndGyroInit(gyroDev_t *gyro)
{ {
mpu9250SpiWriteRegister(&gyro->dev, MPU_RA_PWR_MGMT_1, MPU9250_BIT_RESET); extDevice_t *dev = &gyro->dev;
mpu9250SpiWriteRegister(dev, MPU_RA_PWR_MGMT_1, MPU9250_BIT_RESET);
delay(50); delay(50);
mpu9250SpiWriteRegisterVerify(&gyro->dev, MPU_RA_PWR_MGMT_1, INV_CLK_PLL); mpu9250SpiWriteRegisterVerify(dev, MPU_RA_PWR_MGMT_1, INV_CLK_PLL);
mpu9250SpiWriteRegisterVerify(&gyro->dev, MPU_RA_GYRO_CONFIG, INV_FSR_2000DPS << 3); mpu9250SpiWriteRegisterVerify(dev, MPU_RA_GYRO_CONFIG, INV_FSR_2000DPS << 3);
mpu9250SpiWriteRegisterVerify(&gyro->dev, MPU_RA_CONFIG, mpuGyroDLPF(gyro)); mpu9250SpiWriteRegisterVerify(dev, MPU_RA_CONFIG, mpuGyroDLPF(gyro));
mpu9250SpiWriteRegisterVerify(&gyro->dev, MPU_RA_SMPLRT_DIV, gyro->mpuDividerDrops); mpu9250SpiWriteRegisterVerify(dev, MPU_RA_SMPLRT_DIV, gyro->mpuDividerDrops);
mpu9250SpiWriteRegisterVerify(&gyro->dev, MPU_RA_ACCEL_CONFIG, INV_FSR_16G << 3); mpu9250SpiWriteRegisterVerify(dev, MPU_RA_ACCEL_CONFIG, INV_FSR_16G << 3);
mpu9250SpiWriteRegisterVerify(&gyro->dev, MPU_RA_INT_PIN_CFG, 0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0); // INT_ANYRD_2CLEAR, BYPASS_EN mpu9250SpiWriteRegisterVerify(dev, MPU_RA_INT_PIN_CFG, 0 << 7 | 0 << 6 | 0 << 5 | 1 << 4 | 0 << 3 | 0 << 2 | 1 << 1 | 0 << 0); // INT_ANYRD_2CLEAR, BYPASS_EN
#if defined(USE_MPU_DATA_READY_SIGNAL) mpu9250SpiWriteRegisterVerify(dev, MPU_RA_INT_ENABLE, 0x01); //this resets register MPU_RA_PWR_MGMT_1 and won't read back correctly.
mpu9250SpiWriteRegisterVerify(&gyro->dev, MPU_RA_INT_ENABLE, 0x01); //this resets register MPU_RA_PWR_MGMT_1 and won't read back correctly.
#endif
spiSetClkDivisor(&gyro->dev, spiCalculateDivider(MPU9250_MAX_SPI_CLK_HZ));
} }
uint8_t mpu9250SpiDetect(const extDevice_t *dev) uint8_t mpu9250SpiDetect(const extDevice_t *dev)

View file

@ -32,9 +32,7 @@ typedef void (*baroCalculateFuncPtr)(int32_t *pressure, int32_t *temperature); /
// the 'u' in these variable names means 'uncompensated', 't' is temperature, 'p' pressure. // the 'u' in these variable names means 'uncompensated', 't' is temperature, 'p' pressure.
typedef struct baroDev_s { typedef struct baroDev_s {
extDevice_t dev; extDevice_t dev;
#ifdef USE_EXTI
extiCallbackRec_t exti; extiCallbackRec_t exti;
#endif
bool combined_read; bool combined_read;
uint16_t ut_delay; uint16_t ut_delay;
uint16_t up_delay; uint16_t up_delay;

View file

@ -46,7 +46,6 @@ static bool isEOCConnected = false;
#define BMP085_DATA_FRAME_SIZE 3 #define BMP085_DATA_FRAME_SIZE 3
static uint8_t sensor_data[BMP085_DATA_FRAME_SIZE]; static uint8_t sensor_data[BMP085_DATA_FRAME_SIZE];
#ifdef USE_EXTI
static IO_t eocIO; static IO_t eocIO;
static extiCallbackRec_t exti; static extiCallbackRec_t exti;
@ -55,7 +54,6 @@ static void bmp085ExtiHandler(extiCallbackRec_t* cb)
UNUSED(cb); UNUSED(cb);
isConversionComplete = true; isConversionComplete = true;
} }
#endif
typedef struct { typedef struct {
int16_t ac1; int16_t ac1;
@ -161,7 +159,6 @@ bool bmp085Detect(const bmp085Config_t *config, baroDev_t *baro)
bmp085InitXclrIO(config); bmp085InitXclrIO(config);
BMP085_ON; // enable baro BMP085_ON; // enable baro
#ifdef USE_EXTI
// EXTI interrupt for barometer EOC // EXTI interrupt for barometer EOC
eocIO = IOGetByTag(config->eocTag); eocIO = IOGetByTag(config->eocTag);
@ -169,9 +166,6 @@ bool bmp085Detect(const bmp085Config_t *config, baroDev_t *baro)
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); EXTIEnable(eocIO);
#else
UNUSED(config);
#endif
delay(20); // datasheet says 10ms, we'll be careful and do 20. delay(20); // datasheet says 10ms, we'll be careful and do 20.
@ -212,12 +206,10 @@ bool bmp085Detect(const bmp085Config_t *config, baroDev_t *baro)
} }
} }
#ifdef USE_EXTI
if (eocIO) { if (eocIO) {
IORelease(eocIO); IORelease(eocIO);
EXTIRelease(eocIO); EXTIRelease(eocIO);
} }
#endif
BMP085_OFF; BMP085_OFF;
@ -397,7 +389,6 @@ static bool bmp085TestEOCConnected(baroDev_t *baro, const bmp085Config_t *config
{ {
UNUSED(config); UNUSED(config);
#ifdef USE_EXTI
if (!bmp085InitDone && eocIO) { if (!bmp085InitDone && eocIO) {
// EOC should be low at this point. If not, assume EOC is not working // EOC should be low at this point. If not, assume EOC is not working
if (IORead(eocIO)) { if (IORead(eocIO)) {
@ -413,9 +404,6 @@ static bool bmp085TestEOCConnected(baroDev_t *baro, const bmp085Config_t *config
return true; return true;
} }
} }
#else
UNUSED(baro);
#endif
return false; // assume EOC is not connected return false; // assume EOC is not connected
} }

View file

@ -178,7 +178,6 @@ static bool bmp388ReadUP(baroDev_t *baro);
STATIC_UNIT_TESTED void bmp388Calculate(int32_t *pressure, int32_t *temperature); STATIC_UNIT_TESTED void bmp388Calculate(int32_t *pressure, int32_t *temperature);
#ifdef USE_EXTI
void bmp388_extiHandler(extiCallbackRec_t* cb) void bmp388_extiHandler(extiCallbackRec_t* cb)
{ {
#ifdef DEBUG #ifdef DEBUG
@ -192,7 +191,6 @@ void bmp388_extiHandler(extiCallbackRec_t* cb)
uint8_t intStatus = 0; uint8_t intStatus = 0;
busReadRegisterBuffer(&baro->dev, BMP388_INT_STATUS_REG, &intStatus, 1); busReadRegisterBuffer(&baro->dev, BMP388_INT_STATUS_REG, &intStatus, 1);
} }
#endif
void bmp388BusInit(const extDevice_t *dev) void bmp388BusInit(const extDevice_t *dev)
{ {
@ -230,7 +228,6 @@ bool bmp388Detect(const bmp388Config_t *config, baroDev_t *baro)
{ {
delay(20); delay(20);
#ifdef USE_EXTI
IO_t baroIntIO = IOGetByTag(config->eocTag); IO_t baroIntIO = IOGetByTag(config->eocTag);
if (baroIntIO) { if (baroIntIO) {
IOInit(baroIntIO, OWNER_BARO_EOC, 0); IOInit(baroIntIO, OWNER_BARO_EOC, 0);
@ -238,9 +235,6 @@ bool bmp388Detect(const bmp388Config_t *config, baroDev_t *baro)
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); EXTIEnable(baroIntIO);
} }
#else
UNUSED(config);
#endif
extDevice_t *dev = &baro->dev; extDevice_t *dev = &baro->dev;
bool defaultAddressApplied = false; bool defaultAddressApplied = false;
@ -265,7 +259,6 @@ bool bmp388Detect(const bmp388Config_t *config, baroDev_t *baro)
busDeviceRegister(dev); busDeviceRegister(dev);
#ifdef USE_EXTI
if (baroIntIO) { if (baroIntIO) {
uint8_t intCtrlValue = 1 << BMP388_INT_DRDY_EN_BIT | uint8_t intCtrlValue = 1 << BMP388_INT_DRDY_EN_BIT |
0 << BMP388_INT_FFULL_EN_BIT | 0 << BMP388_INT_FFULL_EN_BIT |
@ -275,7 +268,6 @@ bool bmp388Detect(const bmp388Config_t *config, baroDev_t *baro)
0 << BMP388_INT_OD_BIT; 0 << BMP388_INT_OD_BIT;
busWriteRegister(dev, BMP388_INT_CTRL_REG, intCtrlValue); busWriteRegister(dev, BMP388_INT_CTRL_REG, intCtrlValue);
} }
#endif
// read calibration // read calibration
busReadRegisterBuffer(dev, BMP388_TRIMMING_NVM_PAR_T1_LSB_REG, (uint8_t *)&bmp388_cal, sizeof(bmp388_calib_param_t)); busReadRegisterBuffer(dev, BMP388_TRIMMING_NVM_PAR_T1_LSB_REG, (uint8_t *)&bmp388_cal, sizeof(bmp388_calib_param_t));

View file

@ -24,7 +24,7 @@
#include "platform.h" #include "platform.h"
#ifdef USE_EXTI #if !defined(SIMULATOR_BUILD)
#include "drivers/nvic.h" #include "drivers/nvic.h"
#include "io_impl.h" #include "io_impl.h"
@ -248,3 +248,4 @@ _EXTI_IRQ_HANDLER(EXTI9_5_IRQHandler, 0x03e0);
_EXTI_IRQ_HANDLER(EXTI15_10_IRQHandler, 0xfc00); _EXTI_IRQ_HANDLER(EXTI15_10_IRQHandler, 0xfc00);
#endif #endif

View file

@ -425,7 +425,7 @@ void init(void)
#endif #endif
LED2_ON; LED2_ON;
#ifdef USE_EXTI #if !defined(SIMULATOR_BUILD)
EXTIInit(); EXTIInit();
#endif #endif

View file

@ -538,7 +538,6 @@ FAST_CODE void scheduler(void)
#endif #endif
lastTargetCycles = nextTargetCycles; lastTargetCycles = nextTargetCycles;
#ifdef USE_GYRO_EXTI
gyroDev_t *gyro = gyroActiveDev(); gyroDev_t *gyro = gyroActiveDev();
// Bring the scheduler into lock with the gyro // Bring the scheduler into lock with the gyro
@ -547,7 +546,7 @@ FAST_CODE void scheduler(void)
static uint32_t terminalGyroRateCount = 0; static uint32_t terminalGyroRateCount = 0;
static int32_t sampleRateStartCycles; static int32_t sampleRateStartCycles;
if ((terminalGyroRateCount == 0)) { if (terminalGyroRateCount == 0) {
terminalGyroRateCount = gyro->detectedEXTI + GYRO_RATE_COUNT; terminalGyroRateCount = gyro->detectedEXTI + GYRO_RATE_COUNT;
sampleRateStartCycles = nowCycles; sampleRateStartCycles = nowCycles;
} }
@ -571,7 +570,7 @@ FAST_CODE void scheduler(void)
accGyroSkew += gyroSkew; accGyroSkew += gyroSkew;
if ((terminalGyroLockCount == 0)) { if (terminalGyroLockCount == 0) {
terminalGyroLockCount = gyro->detectedEXTI + GYRO_LOCK_COUNT; terminalGyroLockCount = gyro->detectedEXTI + GYRO_LOCK_COUNT;
} }
@ -584,7 +583,6 @@ FAST_CODE void scheduler(void)
accGyroSkew = 0; accGyroSkew = 0;
} }
} }
#endif
} }
} }

View file

@ -32,7 +32,6 @@
#define INVERTER_PIN_UART1 PC0 #define INVERTER_PIN_UART1 PC0
#define USE_EXTI
#define USE_GYRO #define USE_GYRO
#define USE_GYRO_SPI_MPU6000 #define USE_GYRO_SPI_MPU6000
@ -45,9 +44,7 @@
#define USE_ACC_SPI_MPU6000 #define USE_ACC_SPI_MPU6000
#define USE_ACC_SPI_MPU6500 #define USE_ACC_SPI_MPU6500
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define USE_BARO #define USE_BARO
#define USE_BARO_BMP280 #define USE_BARO_BMP280

View file

@ -37,10 +37,7 @@
#define INVERTER_PIN_UART2 PC15 #define INVERTER_PIN_UART2 PC15
// MPU interrupt // MPU interrupt
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC14 #define GYRO_1_EXTI_PIN PC14
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define GYRO_1_CS_PIN SPI1_NSS_PIN #define GYRO_1_CS_PIN SPI1_NSS_PIN

View file

@ -35,10 +35,7 @@
#define BEEPER_INVERTED #define BEEPER_INVERTED
// MPU interrupt // MPU interrupt
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC14 #define GYRO_1_EXTI_PIN PC14
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define GYRO_1_CS_PIN SPI1_NSS_PIN #define GYRO_1_CS_PIN SPI1_NSS_PIN

View file

@ -118,13 +118,10 @@
/* Motion Processing Unit (MPU) - Invensense 6-axis MPU-6500 or 9-axis MPU-9250 /* Motion Processing Unit (MPU) - Invensense 6-axis MPU-6500 or 9-axis MPU-9250
*/ */
// Interrupt // Interrupt
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC14 #define GYRO_1_EXTI_PIN PC14
// MPU // MPU
#define GYRO_1_CS_PIN SPI1_NSS_PIN #define GYRO_1_CS_PIN SPI1_NSS_PIN
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
// MAG // MAG
#define USE_MAG #define USE_MAG

View file

@ -42,11 +42,7 @@
#define GYRO_1_ALIGN CW270_DEG #define GYRO_1_ALIGN CW270_DEG
// MPU6000 interrupts // MPU6000 interrupts
#define USE_MPU_DATA_READY_SIGNAL
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_EXTI
#define USE_MAG #define USE_MAG
#define USE_MAG_HMC5883 #define USE_MAG_HMC5883

View file

@ -42,11 +42,7 @@
#define GYRO_1_ALIGN CW270_DEG #define GYRO_1_ALIGN CW270_DEG
// MPU6000 interrupts // MPU6000 interrupts
#define USE_MPU_DATA_READY_SIGNAL
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_EXTI
#define USE_MAG #define USE_MAG
//#define USE_MAG_HMC5883 //#define USE_MAG_HMC5883

View file

@ -33,10 +33,7 @@
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_OFF #define ENABLE_DSHOT_DMAR DSHOT_DMAR_OFF
// ICM20689 interrupt // ICM20689 interrupt
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PA8 #define GYRO_1_EXTI_PIN PA8
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define GYRO_1_CS_PIN SPI1_NSS_PIN #define GYRO_1_CS_PIN SPI1_NSS_PIN

View file

@ -45,10 +45,7 @@
// MPU6000 interrupts // MPU6000 interrupts
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define USE_BARO #define USE_BARO
#define USE_BARO_BMP280 #define USE_BARO_BMP280

View file

@ -78,10 +78,7 @@
#define USE_ACC_SPI_ICM20689 #define USE_ACC_SPI_ICM20689
#define USE_GYRO_SPI_ICM20689 #define USE_GYRO_SPI_ICM20689
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PB6 #define GYRO_1_EXTI_PIN PB6
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define GYRO_1_CS_PIN SPI1_NSS_PIN #define GYRO_1_CS_PIN SPI1_NSS_PIN

View file

@ -43,10 +43,7 @@
//#define INVERTER_PIN_UART1 PC9 // Polarity depends on revision; handled in config.c //#define INVERTER_PIN_UART1 PC9 // Polarity depends on revision; handled in config.c
// MPU6500 interrupt // MPU6500 interrupt
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC5 #define GYRO_1_EXTI_PIN PC5
#define USE_MPU_DATA_READY_SIGNAL
#define GYRO_1_CS_PIN PC4 #define GYRO_1_CS_PIN PC4
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1

View file

@ -37,10 +37,7 @@
#define INVERTER_PIN_UART1 PC0 // PC0 used as inverter select GPIO #define INVERTER_PIN_UART1 PC0 // PC0 used as inverter select GPIO
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define USE_ACC #define USE_ACC
#define USE_GYRO #define USE_GYRO

View file

@ -31,11 +31,8 @@
#define BEEPER_INVERTED #define BEEPER_INVERTED
#define USE_MULTI_GYRO #define USE_MULTI_GYRO
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define GYRO_2_EXTI_PIN PC14 #define GYRO_2_EXTI_PIN PC14
#define USE_MPU_DATA_READY_SIGNAL
#define USE_ACC #define USE_ACC
#define USE_GYRO #define USE_GYRO

View file

@ -43,10 +43,7 @@
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1
#define GYRO_1_ALIGN CW90_DEG #define GYRO_1_ALIGN CW90_DEG
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PA1 #define GYRO_1_EXTI_PIN PA1
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define USE_GYRO #define USE_GYRO

View file

@ -39,10 +39,7 @@
#define SPI1_MISO_PIN PA6 #define SPI1_MISO_PIN PA6
#define SPI1_MOSI_PIN PA7 #define SPI1_MOSI_PIN PA7
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define USE_GYRO #define USE_GYRO
#define USE_ACC #define USE_ACC

View file

@ -30,8 +30,6 @@
#define BEEPER_PIN PC13 #define BEEPER_PIN PC13
#define BEEPER_INVERTED #define BEEPER_INVERTED
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PB10 #define GYRO_1_EXTI_PIN PB10
#define GYRO_2_EXTI_PIN PC4 #define GYRO_2_EXTI_PIN PC4
@ -40,7 +38,6 @@
#define GYRO_2_CS_PIN PA4 #define GYRO_2_CS_PIN PA4
#define GYRO_2_SPI_INSTANCE SPI1 #define GYRO_2_SPI_INSTANCE SPI1
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define USE_GYRO #define USE_GYRO

View file

@ -39,10 +39,7 @@
#define USE_ACC_SPI_MPU6500 #define USE_ACC_SPI_MPU6500
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define USE_OSD #define USE_OSD
#define DEFAULT_FEATURES (FEATURE_OSD | FEATURE_SOFTSERIAL) #define DEFAULT_FEATURES (FEATURE_OSD | FEATURE_SOFTSERIAL)

View file

@ -30,10 +30,7 @@
#define LED2_PIN PC2 #define LED2_PIN PC2
// MPU9250 interrupt // MPU9250 interrupt
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PB5 #define GYRO_1_EXTI_PIN PB5
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define GYRO_1_CS_PIN PB12 #define GYRO_1_CS_PIN PB12

View file

@ -44,10 +44,7 @@
#define GYRO_1_CS_PIN PA4 #define GYRO_1_CS_PIN PA4
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PA1 #define GYRO_1_EXTI_PIN PA1
#define USE_MPU_DATA_READY_SIGNAL
#define USE_GYRO #define USE_GYRO
#define USE_GYRO_SPI_MPU6000 #define USE_GYRO_SPI_MPU6000
@ -82,9 +79,9 @@
#define USE_RX_SX1280 #define USE_RX_SX1280
#define RX_SPI_LED_INVERTED #define RX_SPI_LED_INVERTED
#define RX_SPI_BIND_PIN PB2 #define RX_SPI_BIND_PIN PB2
#define RX_SPI_EXTI_PIN PC14 #define RX_SPI_EXTI_PIN PC14
#define RX_SPI_LED_PIN PB9 #define RX_SPI_LED_PIN PB9
#define RX_EXPRESSLRS_SPI_RESET_PIN PA8 #define RX_EXPRESSLRS_SPI_RESET_PIN PA8
#define RX_EXPRESSLRS_SPI_BUSY_PIN PA13 #define RX_EXPRESSLRS_SPI_BUSY_PIN PA13
#define RX_EXPRESSLRS_TIMER_INSTANCE TIM3 #define RX_EXPRESSLRS_TIMER_INSTANCE TIM3
@ -120,7 +117,7 @@
#define DEFAULT_FEATURES (FEATURE_OSD | FEATURE_TELEMETRY ) #define DEFAULT_FEATURES (FEATURE_OSD | FEATURE_TELEMETRY )
#define DEFAULT_VOLTAGE_METER_SOURCE VOLTAGE_METER_ADC #define DEFAULT_VOLTAGE_METER_SOURCE VOLTAGE_METER_ADC
#define DEFAULT_CURRENT_METER_SOURCE CURRENT_METER_ADC #define DEFAULT_CURRENT_METER_SOURCE CURRENT_METER_ADC
#define CURRENT_METER_SCALE_DEFAULT 179 #define CURRENT_METER_SCALE_DEFAULT 179
#define TARGET_IO_PORTA 0xffff #define TARGET_IO_PORTA 0xffff
#define TARGET_IO_PORTB 0xffff #define TARGET_IO_PORTB 0xffff

View file

@ -32,12 +32,9 @@
#define BEEPER_PIN PC15 #define BEEPER_PIN PC15
#define BEEPER_INVERTED #define BEEPER_INVERTED
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PA8 #define GYRO_1_EXTI_PIN PA8
#define GYRO_2_EXTI_PIN PB2 #define GYRO_2_EXTI_PIN PB2
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1

View file

@ -35,10 +35,7 @@
// MPU6000 interrupts // MPU6000 interrupts
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PB0 #define GYRO_1_EXTI_PIN PB0
#define USE_MPU_DATA_READY_SIGNAL
#define GYRO_1_CS_PIN PA4 #define GYRO_1_CS_PIN PA4
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1

View file

@ -51,10 +51,7 @@
/*------------SENSORS--------------*/ /*------------SENSORS--------------*/
// MPU interrupt // MPU interrupt
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define USE_GYRO #define USE_GYRO

View file

@ -45,10 +45,7 @@
/*------------SENSORS--------------*/ /*------------SENSORS--------------*/
// MPU interrupt // MPU interrupt
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#if defined(FF_PIKOF4OSD) #if defined(FF_PIKOF4OSD)

View file

@ -44,10 +44,8 @@
/*------------SENSORS--------------*/ /*------------SENSORS--------------*/
// MPU interrupt // MPU interrupt
#define USE_EXTI
#define GYRO_1_INT_EXTI_PIN PC4 #define GYRO_1_INT_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define USE_GYRO #define USE_GYRO

View file

@ -37,10 +37,7 @@
#define INVERTER_PIN_UART6 PC8 #define INVERTER_PIN_UART6 PC8
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
// *************** Gyro & ACC ********************** // *************** Gyro & ACC **********************
#define USE_SPI #define USE_SPI

View file

@ -43,10 +43,7 @@
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1
#define GYRO_1_ALIGN CW180_DEG #define GYRO_1_ALIGN CW180_DEG
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PB3 #define GYRO_1_EXTI_PIN PB3
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define USE_GYRO #define USE_GYRO
@ -127,7 +124,7 @@
#define USE_LED_STRIP #define USE_LED_STRIP
#define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON #define ENABLE_DSHOT_DMAR DSHOT_DMAR_ON
#define USE_PINIO #define USE_PINIO
#define PINIO1_PIN PB5 // VTX switcher #define PINIO1_PIN PB5 // VTX switcher
//#define PINIO2_PIN PA15 // Camera switcher //#define PINIO2_PIN PA15 // Camera switcher

View file

@ -20,7 +20,7 @@
#pragma once #pragma once
#define USE_TARGET_CONFIG #define USE_TARGET_CONFIG
#define TARGET_BOARD_IDENTIFIER "FWF7" #define TARGET_BOARD_IDENTIFIER "FWF7"
#define USBD_PRODUCT_STRING "FLYWOOF7DUAL" #define USBD_PRODUCT_STRING "FLYWOOF7DUAL"
@ -32,8 +32,6 @@
#define BEEPER_PIN PC14 #define BEEPER_PIN PC14
#define BEEPER_INVERTED #define BEEPER_INVERTED
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC3 #define GYRO_1_EXTI_PIN PC3
#define GYRO_2_EXTI_PIN PC4 #define GYRO_2_EXTI_PIN PC4
@ -42,7 +40,6 @@
#define GYRO_2_CS_PIN PB2 #define GYRO_2_CS_PIN PB2
#define GYRO_2_SPI_INSTANCE SPI1 #define GYRO_2_SPI_INSTANCE SPI1
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define USE_GYRO #define USE_GYRO

View file

@ -39,10 +39,7 @@
#define SPI1_MISO_PIN PA6 #define SPI1_MISO_PIN PA6
#define SPI1_MOSI_PIN PA7 #define SPI1_MOSI_PIN PA7
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define USE_GYRO #define USE_GYRO
#define USE_ACC #define USE_ACC

View file

@ -30,8 +30,6 @@
#define BEEPER_PIN PA4 #define BEEPER_PIN PA4
#define BEEPER_INVERTED #define BEEPER_INVERTED
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define GYRO_2_EXTI_PIN PB0 #define GYRO_2_EXTI_PIN PB0
@ -40,7 +38,6 @@
#define GYRO_2_CS_PIN PB1 #define GYRO_2_CS_PIN PB1
#define GYRO_2_SPI_INSTANCE SPI1 #define GYRO_2_SPI_INSTANCE SPI1
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define USE_GYRO #define USE_GYRO

View file

@ -42,10 +42,7 @@
#define GYRO_1_ALIGN CW270_DEG #define GYRO_1_ALIGN CW270_DEG
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define USE_BARO #define USE_BARO
#define USE_BARO_BMP280 #define USE_BARO_BMP280

View file

@ -40,10 +40,7 @@
#define INVERTER_PIN_UART1 PC0 // PC0 used as inverter select GPIO #define INVERTER_PIN_UART1 PC0 // PC0 used as inverter select GPIO
// MPU6000 interrupts // MPU6000 interrupts
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define GYRO_1_CS_PIN PA4 #define GYRO_1_CS_PIN PA4
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1

View file

@ -50,10 +50,7 @@
#define SPI1_MISO_PIN PA6 #define SPI1_MISO_PIN PA6
#define SPI1_MOSI_PIN PA7 #define SPI1_MOSI_PIN PA7
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define USE_GYRO #define USE_GYRO
#define USE_ACC #define USE_ACC

View file

@ -51,10 +51,7 @@
#define SPI1_MISO_PIN PA6 #define SPI1_MISO_PIN PA6
#define SPI1_MOSI_PIN PA7 #define SPI1_MOSI_PIN PA7
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PB2 #define GYRO_1_EXTI_PIN PB2
#define USE_MPU_DATA_READY_SIGNAL
#define USE_GYRO #define USE_GYRO
#define USE_ACC #define USE_ACC

View file

@ -50,10 +50,7 @@
#define GYRO_1_CS_PIN PA4 #define GYRO_1_CS_PIN PA4
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define USE_GYRO #define USE_GYRO
#define USE_GYRO_SPI_MPU6000 #define USE_GYRO_SPI_MPU6000

View file

@ -120,11 +120,8 @@
#define USE_ACCGYRO_BMI270 #define USE_ACCGYRO_BMI270
#define USE_ACCGYRO_LSM6DSO #define USE_ACCGYRO_LSM6DSO
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PD0 #define GYRO_1_EXTI_PIN PD0
#define GYRO_2_EXTI_PIN PD8 #define GYRO_2_EXTI_PIN PD8
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define GYRO_1_CS_PIN SPI1_NSS_PIN #define GYRO_1_CS_PIN SPI1_NSS_PIN

View file

@ -120,11 +120,8 @@
#define USE_ACCGYRO_BMI270 #define USE_ACCGYRO_BMI270
#define USE_ACCGYRO_LSM6DSO #define USE_ACCGYRO_LSM6DSO
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PD0 #define GYRO_1_EXTI_PIN PD0
#define GYRO_2_EXTI_PIN PD8 #define GYRO_2_EXTI_PIN PD8
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define GYRO_1_CS_PIN SPI1_NSS_PIN #define GYRO_1_CS_PIN SPI1_NSS_PIN

View file

@ -33,8 +33,6 @@
#define BEEPER_PIN PC15 #define BEEPER_PIN PC15
#define BEEPER_INVERTED #define BEEPER_INVERTED
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define GYRO_2_EXTI_PIN PC3 #define GYRO_2_EXTI_PIN PC3
@ -44,7 +42,6 @@
#define GYRO_2_CS_PIN PA4 #define GYRO_2_CS_PIN PA4
#define GYRO_2_SPI_INSTANCE SPI1 #define GYRO_2_SPI_INSTANCE SPI1
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define USE_GYRO #define USE_GYRO

View file

@ -53,10 +53,7 @@
#define INVERTER_PIN_UART3 PB15 #define INVERTER_PIN_UART3 PB15
// ICM20689 interrupt // ICM20689 interrupt
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC5 #define GYRO_1_EXTI_PIN PC5
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define GYRO_1_CS_PIN PC4 #define GYRO_1_CS_PIN PC4

View file

@ -47,7 +47,6 @@
#define USE_ACC #define USE_ACC
#define USE_GYRO #define USE_GYRO
#define USE_EXTI
// MPU6000 // MPU6000
#define USE_ACC_SPI_MPU6000 #define USE_ACC_SPI_MPU6000
@ -60,9 +59,7 @@
#define GYRO_1_SPI_INSTANCE SPI4 #define GYRO_1_SPI_INSTANCE SPI4
#define GYRO_1_ALIGN CW270_DEG #define GYRO_1_ALIGN CW270_DEG
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PE1 #define GYRO_1_EXTI_PIN PE1
#define USE_MPU_DATA_READY_SIGNAL
#define USE_VCP #define USE_VCP
#define USE_USB_DETECT #define USE_USB_DETECT

View file

@ -48,10 +48,7 @@
#define INVERTER_PIN_UART1 PC0 // PC0 used as inverter select GPIO #define INVERTER_PIN_UART1 PC0 // PC0 used as inverter select GPIO
// MPU6000 interrupts // MPU6000 interrupts
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define GYRO_1_CS_PIN PA4 #define GYRO_1_CS_PIN PA4
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1

View file

@ -41,9 +41,6 @@
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1
// MPU6000 interrupts // MPU6000 interrupts
#define USE_EXTI
#define USE_MPU_DATA_READY_SIGNAL
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PA4 #define GYRO_1_EXTI_PIN PA4
#define USE_GYRO #define USE_GYRO

View file

@ -41,10 +41,7 @@
// ******* GYRO and ACC ******** // ******* GYRO and ACC ********
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PB0 #define GYRO_1_EXTI_PIN PB0
#define USE_MPU_DATA_READY_SIGNAL
#define GYRO_1_CS_PIN PA4 #define GYRO_1_CS_PIN PA4
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1

View file

@ -41,10 +41,7 @@
// ******* GYRO and ACC ******** // ******* GYRO and ACC ********
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define GYRO_1_CS_PIN PA4 #define GYRO_1_CS_PIN PA4
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1

View file

@ -46,10 +46,7 @@
#define GYRO_1_CS_PIN PC2 #define GYRO_1_CS_PIN PC2
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC3 #define GYRO_1_EXTI_PIN PC3
#define USE_MPU_DATA_READY_SIGNAL
#define USE_GYRO #define USE_GYRO
#define USE_GYRO_SPI_MPU6000 #define USE_GYRO_SPI_MPU6000

View file

@ -44,10 +44,7 @@
#define GYRO_1_CS_PIN PA4 #define GYRO_1_CS_PIN PA4
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PA1 #define GYRO_1_EXTI_PIN PA1
#define USE_MPU_DATA_READY_SIGNAL
#define USE_GYRO #define USE_GYRO
#define USE_GYRO_SPI_MPU6000 #define USE_GYRO_SPI_MPU6000

View file

@ -54,10 +54,7 @@
#define GYRO_1_CS_PIN PA4 #define GYRO_1_CS_PIN PA4
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PA1 #define GYRO_1_EXTI_PIN PA1
#define USE_MPU_DATA_READY_SIGNAL
#define USE_GYRO #define USE_GYRO
#define USE_GYRO_SPI_MPU6000 #define USE_GYRO_SPI_MPU6000

View file

@ -44,10 +44,7 @@
#define GYRO_1_CS_PIN PC2 #define GYRO_1_CS_PIN PC2
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC3 #define GYRO_1_EXTI_PIN PC3
#define USE_MPU_DATA_READY_SIGNAL
#define USE_GYRO #define USE_GYRO
#define USE_GYRO_SPI_MPU6500 #define USE_GYRO_SPI_MPU6500

View file

@ -42,8 +42,6 @@
#define SPI1_MISO_PIN PA6 #define SPI1_MISO_PIN PA6
#define SPI1_MOSI_PIN PA7 #define SPI1_MOSI_PIN PA7
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define GYRO_2_EXTI_PIN PC3 #define GYRO_2_EXTI_PIN PC3
@ -64,7 +62,6 @@
#define GYRO_2_ALIGN CW90_DEG #define GYRO_2_ALIGN CW90_DEG
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define GYRO_CONFIG_USE_GYRO_DEFAULT GYRO_CONFIG_USE_GYRO_1 #define GYRO_CONFIG_USE_GYRO_DEFAULT GYRO_CONFIG_USE_GYRO_1

View file

@ -38,8 +38,6 @@
#define USE_SPI #define USE_SPI
#define USE_GYRO #define USE_GYRO
#define USE_ACC #define USE_ACC
#define USE_EXTI
#define USE_GYRO_EXTI
#define USE_SPI_DEVICE_1 #define USE_SPI_DEVICE_1
#define GYRO_1_SPI_INSTANCE SPI1 //MPU6000 #define GYRO_1_SPI_INSTANCE SPI1 //MPU6000
@ -65,7 +63,6 @@
#define USE_ACC_SPI_MPU6500 #define USE_ACC_SPI_MPU6500
#define GYRO_2_ALIGN CW0_DEG_FLIP #define GYRO_2_ALIGN CW0_DEG_FLIP
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define GYRO_CONFIG_USE_GYRO_DEFAULT GYRO_CONFIG_USE_GYRO_1 #define GYRO_CONFIG_USE_GYRO_DEFAULT GYRO_CONFIG_USE_GYRO_1

View file

@ -40,10 +40,7 @@
#define GYRO_1_CS_PIN PB12 #define GYRO_1_CS_PIN PB12
#define GYRO_1_SPI_INSTANCE SPI2 #define GYRO_1_SPI_INSTANCE SPI2
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define USE_GYRO #define USE_GYRO
#define USE_GYRO_SPI_MPU6000 #define USE_GYRO_SPI_MPU6000

View file

@ -40,10 +40,7 @@
#define GYRO_1_CS_PIN PB12 #define GYRO_1_CS_PIN PB12
#define GYRO_1_SPI_INSTANCE SPI2 #define GYRO_1_SPI_INSTANCE SPI2
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define USE_GYRO #define USE_GYRO
#define USE_GYRO_SPI_MPU6000 #define USE_GYRO_SPI_MPU6000

View file

@ -33,9 +33,7 @@
#define INVERTER_PIN_UART2 PB2 // PB2 (BOOT1) abused as inverter select GPIO #define INVERTER_PIN_UART2 PB2 // PB2 (BOOT1) abused as inverter select GPIO
#define USE_EXTI
#define MAG_INT_EXTI PC14 #define MAG_INT_EXTI PC14
#define USE_MPU_DATA_READY_SIGNAL
#define USE_MAG_DATA_READY_SIGNAL #define USE_MAG_DATA_READY_SIGNAL
// SPI2 // SPI2

View file

@ -49,10 +49,7 @@
#define USE_GYRO_SPI_MPU6000 #define USE_GYRO_SPI_MPU6000
// MPU6000 interrupts // MPU6000 interrupts
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC5 #define GYRO_1_EXTI_PIN PC5
#define USE_MPU_DATA_READY_SIGNAL
//#define ENSURE_MPU_DATA_READY_IS_LOW //#define ENSURE_MPU_DATA_READY_IS_LOW
//#define EXTI_CALLBACK_HANDLER_COUNT 1 // MPU data ready //#define EXTI_CALLBACK_HANDLER_COUNT 1 // MPU data ready

View file

@ -36,10 +36,7 @@
#define BEEPER_INVERTED #define BEEPER_INVERTED
// MPU6500 interrupt // MPU6500 interrupt
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PB2 #define GYRO_1_EXTI_PIN PB2
#define USE_MPU_DATA_READY_SIGNAL
#define GYRO_1_CS_PIN PC4 #define GYRO_1_CS_PIN PC4
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1

View file

@ -56,10 +56,7 @@
#define USE_ACC_SPI_ICM42688P #define USE_ACC_SPI_ICM42688P
#define USE_ACCGYRO_LSM6DSO #define USE_ACCGYRO_LSM6DSO
#define USE_ACCGYRO_BMI270 #define USE_ACCGYRO_BMI270
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PB6 #define GYRO_1_EXTI_PIN PB6
#define USE_MPU_DATA_READY_SIGNAL
#define GYRO_1_CS_PIN SPI1_NSS_PIN #define GYRO_1_CS_PIN SPI1_NSS_PIN
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1
#define GYRO_1_ALIGN CW90_DEG #define GYRO_1_ALIGN CW90_DEG

View file

@ -45,11 +45,8 @@
#define GYRO_1_SPI_INSTANCE SPI2 #define GYRO_1_SPI_INSTANCE SPI2
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PA8 #define GYRO_1_EXTI_PIN PA8
#define USE_MPU_DATA_READY_SIGNAL
#define USE_BARO #define USE_BARO
#define USE_BARO_BMP280 #define USE_BARO_BMP280

View file

@ -30,7 +30,6 @@
//#define USE_BEEPER //#define USE_BEEPER
//#define BEEPER_PIN PD12 //#define BEEPER_PIN PD12
#define USE_EXTI
#define USE_SPI #define USE_SPI
//#define USE_SPI_DEVICE_1 //#define USE_SPI_DEVICE_1
@ -54,11 +53,8 @@
#define GYRO_1_SPI_INSTANCE SPI2 #define GYRO_1_SPI_INSTANCE SPI2
#define GYRO_1_CS_PIN PB12 #define GYRO_1_CS_PIN PB12
#define USE_EXTI
//#define USE_GYRO_EXTI
//#define GYRO_1_EXTI_PIN PC13 //#define GYRO_1_EXTI_PIN PC13
//#define USE_MPU_DATA_READY_SIGNAL
//#define ENSURE_MPU_DATA_READY_IS_LOW //#define ENSURE_MPU_DATA_READY_IS_LOW
#define USE_BARO #define USE_BARO

View file

@ -45,11 +45,7 @@
#define GYRO_1_ALIGN CW270_DEG #define GYRO_1_ALIGN CW270_DEG
// MPU6050 interrupts // MPU6050 interrupts
#define USE_MPU_DATA_READY_SIGNAL
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PB15 #define GYRO_1_EXTI_PIN PB15
#define USE_EXTI
#define USE_MAG #define USE_MAG
#define USE_FAKE_MAG #define USE_FAKE_MAG

View file

@ -45,11 +45,7 @@
#define GYRO_1_ALIGN CW270_DEG #define GYRO_1_ALIGN CW270_DEG
// MPU6050 interrupts // MPU6050 interrupts
#define USE_MPU_DATA_READY_SIGNAL
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PB15 #define GYRO_1_EXTI_PIN PB15
#define USE_EXTI
#define USE_MAG #define USE_MAG
#define USE_FAKE_MAG #define USE_FAKE_MAG

View file

@ -226,7 +226,6 @@
#define USE_TIMER #define USE_TIMER
#define USE_PWM_OUTPUT #define USE_PWM_OUTPUT
#define USE_MOTOR #define USE_MOTOR
#define USE_EXTI
#define USE_RANGEFINDER #define USE_RANGEFINDER
#define USE_RANGEFINDER_HCSR04 #define USE_RANGEFINDER_HCSR04

View file

@ -235,7 +235,6 @@
#define USE_TIMER #define USE_TIMER
#define USE_PWM_OUTPUT #define USE_PWM_OUTPUT
#define USE_MOTOR #define USE_MOTOR
#define USE_EXTI
#define USE_RANGEFINDER #define USE_RANGEFINDER
#define USE_RANGEFINDER_HCSR04 #define USE_RANGEFINDER_HCSR04

View file

@ -240,7 +240,6 @@
#define USE_TIMER #define USE_TIMER
#define USE_PWM_OUTPUT #define USE_PWM_OUTPUT
#define USE_MOTOR #define USE_MOTOR
#define USE_EXTI
#define USE_RANGEFINDER #define USE_RANGEFINDER
#define USE_RANGEFINDER_HCSR04 #define USE_RANGEFINDER_HCSR04

View file

@ -226,7 +226,6 @@
#define USE_TIMER #define USE_TIMER
#define USE_PWM_OUTPUT #define USE_PWM_OUTPUT
#define USE_MOTOR #define USE_MOTOR
#define USE_EXTI
#define USE_RANGEFINDER #define USE_RANGEFINDER
#define USE_RANGEFINDER_HCSR04 #define USE_RANGEFINDER_HCSR04

View file

@ -76,7 +76,6 @@
#define INVERTER_PIN_UART1 PC0 // DYS F4 Pro; Omnibus F4 AIO (1st gen) have a FIXED inverter on UART1 #define INVERTER_PIN_UART1 PC0 // DYS F4 Pro; Omnibus F4 AIO (1st gen) have a FIXED inverter on UART1
#endif #endif
#define USE_EXTI
#define USE_ACC #define USE_ACC
#define USE_ACC_SPI_MPU6000 #define USE_ACC_SPI_MPU6000
@ -88,9 +87,7 @@
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1
// MPU6000 interrupts // MPU6000 interrupts
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#if defined(OMNIBUSF4SD) #if defined(OMNIBUSF4SD)
#define GYRO_1_ALIGN CW270_DEG #define GYRO_1_ALIGN CW270_DEG

View file

@ -84,11 +84,8 @@
#define GYRO_CONFIG_USE_GYRO_DEFAULT GYRO_CONFIG_USE_GYRO_1 #define GYRO_CONFIG_USE_GYRO_DEFAULT GYRO_CONFIG_USE_GYRO_1
// MPU6000 interrupts // MPU6000 interrupts
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define GYRO_2_EXTI_PIN NONE #define GYRO_2_EXTI_PIN NONE
#define USE_MPU_DATA_READY_SIGNAL
#define USE_MAG #define USE_MAG
#define MAG_I2C_INSTANCE (I2CDEV_1) #define MAG_I2C_INSTANCE (I2CDEV_1)

View file

@ -52,9 +52,6 @@
#define USE_ACC_SPI_MPU6000 #define USE_ACC_SPI_MPU6000
#define USE_GYRO_SPI_MPU6000 #define USE_GYRO_SPI_MPU6000
//#define USE_MPU_DATA_READY_SIGNAL
#define USE_EXTI
#define USE_GYRO_EXTI
#if defined(OMNIBUSF7V2) #if defined(OMNIBUSF7V2)
#define GYRO_1_SPI_INSTANCE SPI3 #define GYRO_1_SPI_INSTANCE SPI3

View file

@ -47,9 +47,6 @@
#define USE_ACC #define USE_ACC
#define USE_GYRO #define USE_GYRO
// MPU interrupts // MPU interrupts
//#define USE_EXTI
//#define USE_GYRO_EXTI
//#define USE_MPU_DATA_READY_SIGNAL
// For debugging with NUC405RG // For debugging with NUC405RG
#define USE_FAKE_ACC #define USE_FAKE_ACC

View file

@ -29,10 +29,7 @@
#define INVERTER_PIN_UART1 PC3 // PC3 used as sBUS inverter select GPIO #define INVERTER_PIN_UART1 PC3 // PC3 used as sBUS inverter select GPIO
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
// DEFINE SPI USAGE // DEFINE SPI USAGE
#define USE_SPI #define USE_SPI

View file

@ -145,10 +145,7 @@
#endif #endif
// MPU6000 interrupts // MPU6000 interrupts
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#if defined(ELINF405) #if defined(ELINF405)

View file

@ -91,10 +91,7 @@
#define GYRO_1_ALIGN CW0_DEG #define GYRO_1_ALIGN CW0_DEG
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
/*----------Flash Config--------*/ /*----------Flash Config--------*/
#define FLASH_CS_PIN PB3 #define FLASH_CS_PIN PB3

View file

@ -53,10 +53,7 @@
#define USE_MAG_MPU925X_AK8963 #define USE_MAG_MPU925X_AK8963
// MPU6500 interrupts // MPU6500 interrupts
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PA15 #define GYRO_1_EXTI_PIN PA15
#define USE_MPU_DATA_READY_SIGNAL
#define USE_VCP #define USE_VCP
#define USE_USB_DETECT #define USE_USB_DETECT

View file

@ -31,9 +31,6 @@
#define BEEPER_INVERTED #define BEEPER_INVERTED
//#define BEEPER_PWM_HZ 1100 //#define BEEPER_PWM_HZ 1100
#define USE_EXTI
#define USE_GYRO_EXTI
#define USE_MPU_DATA_READY_SIGNAL
#define USE_ACC #define USE_ACC
#define USE_GYRO #define USE_GYRO

View file

@ -40,10 +40,7 @@
#define SPI1_MISO_PIN PA6 #define SPI1_MISO_PIN PA6
#define SPI1_MOSI_PIN PA7 #define SPI1_MOSI_PIN PA7
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define USE_GYRO #define USE_GYRO
#define USE_ACC #define USE_ACC

View file

@ -37,10 +37,7 @@
#define INVERTER_PIN_UART6 PC6 #define INVERTER_PIN_UART6 PC6
// MPU9250 interrupt // MPU9250 interrupt
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC5 #define GYRO_1_EXTI_PIN PC5
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define GYRO_1_CS_PIN PC4 #define GYRO_1_CS_PIN PC4

View file

@ -43,10 +43,7 @@
#define GYRO_1_CS_PIN PB11 #define GYRO_1_CS_PIN PB11
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define USE_GYRO #define USE_GYRO
#define USE_GYRO_SPI_MPU6000 #define USE_GYRO_SPI_MPU6000

View file

@ -43,10 +43,7 @@
#define GYRO_1_CS_PIN PA4 #define GYRO_1_CS_PIN PA4
#define GYRO_1_SPI_INSTANCE SPI1 #define GYRO_1_SPI_INSTANCE SPI1
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4 #define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define USE_GYRO #define USE_GYRO
#define USE_GYRO_SPI_ICM20689 #define USE_GYRO_SPI_ICM20689

View file

@ -63,10 +63,7 @@
#define GYRO_1_CS_PIN PB12 #define GYRO_1_CS_PIN PB12
#define GYRO_1_SPI_INSTANCE SPI2 #define GYRO_1_SPI_INSTANCE SPI2
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC13 #define GYRO_1_EXTI_PIN PC13
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define USE_VCP #define USE_VCP

View file

@ -37,13 +37,10 @@
#define INVERTER_PIN_UART2 PB2 #define INVERTER_PIN_UART2 PB2
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC13 #define GYRO_1_EXTI_PIN PC13
#ifdef SPRACINGF4EVODG #ifdef SPRACINGF4EVODG
#define GYRO_2_EXTI_PIN PC5 // GYRO 2 / NC on prototype boards, but if it was it'd be here. #define GYRO_2_EXTI_PIN PC5 // GYRO 2 / NC on prototype boards, but if it was it'd be here.
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#endif #endif

View file

@ -54,11 +54,8 @@
#define INVERTER_PIN_UART2 PA0 #define INVERTER_PIN_UART2 PA0
#endif #endif
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC13 #define GYRO_1_EXTI_PIN PC13
#define USE_MPU_DATA_READY_SIGNAL
#define ENSURE_MPU_DATA_READY_IS_LOW #define ENSURE_MPU_DATA_READY_IS_LOW
#define USE_MAG_DATA_READY_SIGNAL #define USE_MAG_DATA_READY_SIGNAL

Some files were not shown because too many files have changed in this diff Show more