From efe47a62428c3a2ba38e02bea820047a71f06d60 Mon Sep 17 00:00:00 2001 From: Davide Mor <tazdevil971@gmail.com> Date: Mon, 26 Jun 2023 23:04:36 +0200 Subject: [PATCH] [sx1278] Updated internals in order to use new interrupt API --- src/shared/radio/SX1278/SX1278Common.cpp | 18 +++++++++++++----- src/shared/radio/SX1278/SX1278Common.h | 3 +++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/shared/radio/SX1278/SX1278Common.cpp b/src/shared/radio/SX1278/SX1278Common.cpp index a815363c7..cdd167504 100644 --- a/src/shared/radio/SX1278/SX1278Common.cpp +++ b/src/shared/radio/SX1278/SX1278Common.cpp @@ -45,10 +45,18 @@ void SX1278Common::handleDioIRQ() } } -void SX1278Common::enableIrqs() { - enableExternalInterrupt(dio0.getPort(), dio0.getNumber(), InterruptTrigger::RISING_EDGE); - enableExternalInterrupt(dio1.getPort(), dio1.getNumber(), InterruptTrigger::RISING_EDGE); - enableExternalInterrupt(dio3.getPort(), dio3.getNumber(), InterruptTrigger::RISING_EDGE); +void SX1278Common::enableIrqs() +{ + enableExternalInterrupt(dio0, InterruptTrigger::RISING_EDGE); + enableExternalInterrupt(dio1, InterruptTrigger::RISING_EDGE); + enableExternalInterrupt(dio3, InterruptTrigger::RISING_EDGE); +} + +void SX1278Common::disableIrqs() +{ + disableExternalInterrupt(dio0); + disableExternalInterrupt(dio1); + disableExternalInterrupt(dio3); } void SX1278Common::setDefaultMode(Mode mode, DioMapping mapping, @@ -236,7 +244,7 @@ void SX1278Common::enterMode(Mode mode, DioMapping mapping, // Change DIO1 interrupt kind if (dio1_trigger != state.dio1_trigger) { - enableExternalInterrupt(dio1.getPort(), dio1.getNumber(), dio1_trigger); + changeInterruptTrigger(dio1, dio1_trigger); state.dio1_trigger = dio1_trigger; } diff --git a/src/shared/radio/SX1278/SX1278Common.h b/src/shared/radio/SX1278/SX1278Common.h index 2ac8cc607..fb142ae91 100644 --- a/src/shared/radio/SX1278/SX1278Common.h +++ b/src/shared/radio/SX1278/SX1278Common.h @@ -136,6 +136,8 @@ protected: enableIrqs(); } + ~SX1278Common() { disableIrqs(); } + /** * @brief RAII scoped bus lock guard. */ @@ -217,6 +219,7 @@ protected: private: void enableIrqs(); + void disableIrqs(); void waitForIrqInner(LockMode &guard, bool unlock); -- GitLab