From dfa6a7aa97705900fff1b21d5ce465a0b4e942d7 Mon Sep 17 00:00:00 2001 From: Brendan McDonnell Date: Wed, 28 Feb 2018 14:02:05 -0500 Subject: [PATCH] factor out common function --- drivers/InterruptIn.cpp | 8 ++++++-- drivers/InterruptIn.h | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/InterruptIn.cpp b/drivers/InterruptIn.cpp index 1e60d4eb50..628c9fa33f 100644 --- a/drivers/InterruptIn.cpp +++ b/drivers/InterruptIn.cpp @@ -24,7 +24,7 @@ InterruptIn::InterruptIn(PinName pin) : gpio(), _rise(NULL), _fall(NULL) { // No lock needed in the constructor - gpio_irq_init(&gpio_irq, pin, (&InterruptIn::_irq_handler), (uint32_t)this); + irq_init(pin); gpio_init_in(&gpio, pin); } @@ -34,10 +34,14 @@ InterruptIn::InterruptIn(PinName pin, PinMode mode) : _rise(NULL), _fall(NULL) { // No lock needed in the constructor - gpio_irq_init(&gpio_irq, pin, (&InterruptIn::_irq_handler), (uint32_t)this); + irq_init(pin); gpio_init_in_ex(&gpio, pin, mode); } +void InterruptIn::irq_init(PinName pin) { + gpio_irq_init(&gpio_irq, pin, (&InterruptIn::_irq_handler), (uint32_t)this); +} + InterruptIn::~InterruptIn() { // No lock needed in the destructor gpio_irq_free(&gpio_irq); diff --git a/drivers/InterruptIn.h b/drivers/InterruptIn.h index fc6934dfb0..5c852ef80e 100644 --- a/drivers/InterruptIn.h +++ b/drivers/InterruptIn.h @@ -159,6 +159,8 @@ protected: Callback _rise; Callback _fall; + + void irq_init(PinName pin); }; } // namespace mbed