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()));