From 8e2b2ee53b0b6917318caf12f60a1cb684c7c920 Mon Sep 17 00:00:00 2001 From: Jye Date: Mon, 6 Jun 2022 20:50:07 +1000 Subject: [PATCH] minor optimisation --- src/lib/SX1280Driver/SX1280.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/lib/SX1280Driver/SX1280.cpp b/src/lib/SX1280Driver/SX1280.cpp index af0a6e75c6..0727ead62b 100644 --- a/src/lib/SX1280Driver/SX1280.cpp +++ b/src/lib/SX1280Driver/SX1280.cpp @@ -406,8 +406,15 @@ void ICACHE_RAM_ATTR SX1280Driver::TXnb() if (GPIO_PIN_NSS_2 != UNDEF_PIN) { - if (lastSuccessfulPacketRadio == SX1280_Radio_1) instance->SetMode(SX1280_MODE_FS, SX1280_Radio_2); // Make sure the unused radio is in FS mode and will not receive the tx packet. - if (lastSuccessfulPacketRadio == SX1280_Radio_2) instance->SetMode(SX1280_MODE_FS, SX1280_Radio_1); + // Make sure the unused radio is in FS mode and will not receive the tx packet. + if (lastSuccessfulPacketRadio == SX1280_Radio_1) + { + instance->SetMode(SX1280_MODE_FS, SX1280_Radio_2); + } + else + { + instance->SetMode(SX1280_MODE_FS, SX1280_Radio_1); + } } hal.TXenable(lastSuccessfulPacketRadio); // do first to allow PA stablise @@ -422,8 +429,8 @@ void ICACHE_RAM_ATTR SX1280Driver::TXnb() bool ICACHE_RAM_ATTR SX1280Driver::RXnbISR(uint16_t const irqStatus, SX1280_Radio_Number_t radioNumber) { rx_status const fail = - ((irqStatus & SX1280_IRQ_CRC_ERROR) ? SX12XX_RX_CRC_FAIL : SX12XX_RX_OK) + - ((irqStatus & SX1280_IRQ_RX_TX_TIMEOUT) ? SX12XX_RX_TIMEOUT : SX12XX_RX_OK) + + ((irqStatus & SX1280_IRQ_CRC_ERROR) ? SX12XX_RX_CRC_FAIL : SX12XX_RX_OK) | + ((irqStatus & SX1280_IRQ_RX_TX_TIMEOUT) ? SX12XX_RX_TIMEOUT : SX12XX_RX_OK) | ((irqStatus & SX1280_IRQ_SYNCWORD_ERROR) ? SX12XX_RX_SYNCWORD_ERROR : SX12XX_RX_OK); // In continuous receive mode, the device stays in Rx mode if (timeout != 0xFFFF)