From ae64ec1911512a0b3e0df8d302d75381dd2c97c0 Mon Sep 17 00:00:00 2001 From: jgromes Date: Sun, 9 Oct 2022 19:14:07 +0200 Subject: [PATCH] [CC1101] Fixed incorrect GPIO NC check logic --- .../CC1101_Transmit_Interrupt/CC1101_Transmit_Interrupt.ino | 5 ++++- src/modules/CC1101/CC1101.cpp | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/examples/CC1101/CC1101_Transmit_Interrupt/CC1101_Transmit_Interrupt.ino b/examples/CC1101/CC1101_Transmit_Interrupt/CC1101_Transmit_Interrupt.ino index b09c455e..c55b3a9f 100644 --- a/examples/CC1101/CC1101_Transmit_Interrupt/CC1101_Transmit_Interrupt.ino +++ b/examples/CC1101/CC1101_Transmit_Interrupt/CC1101_Transmit_Interrupt.ino @@ -48,7 +48,10 @@ void setup() { // set the function that will be called // when packet transmission is finished - radio.setGdo0Action(setFlag); + // NOTE: Unlike other modules (such as SX127x), + // different GDOx pins are used for + // transmit and receive interrupts! + radio.setGdo2Action(setFlag); // start transmitting the first packet Serial.print(F("[CC1101] Sending first packet ... ")); diff --git a/src/modules/CC1101/CC1101.cpp b/src/modules/CC1101/CC1101.cpp index a2e2eafe..b4f00fff 100644 --- a/src/modules/CC1101/CC1101.cpp +++ b/src/modules/CC1101/CC1101.cpp @@ -232,7 +232,7 @@ void CC1101::clearGdo0Action() { } void CC1101::setGdo2Action(void (*func)(void), RADIOLIB_INTERRUPT_STATUS dir) { - if(_mod->getGpio() != RADIOLIB_NC) { + if(_mod->getGpio() == RADIOLIB_NC) { return; } _mod->pinMode(_mod->getGpio(), INPUT); @@ -240,7 +240,7 @@ void CC1101::setGdo2Action(void (*func)(void), RADIOLIB_INTERRUPT_STATUS dir) { } void CC1101::clearGdo2Action() { - if(_mod->getGpio() != RADIOLIB_NC) { + if(_mod->getGpio() == RADIOLIB_NC) { return; } _mod->detachInterrupt(RADIOLIB_DIGITAL_PIN_TO_INTERRUPT(_mod->getGpio()));