diff options
| author | Cristian Maglie <c.maglie@bug.st> | 2012-11-02 19:48:04 +0100 |
|---|---|---|
| committer | Cristian Maglie <c.maglie@bug.st> | 2012-11-02 19:48:04 +0100 |
| commit | b77b1817d5db3d777c9ca5dc9792cb49fc4f990e (patch) | |
| tree | 6d2035e7d37bf67e1fa69b051e5b3a77a69113df | |
| parent | 5a9055118ed04678f366d4017b8d31bf7b4e24f2 (diff) | |
{attach,detach}Interrupt() on Due selects directly pin number instead of interrupt number.
| -rw-r--r-- | sam/cores/arduino/WInterrupts.c | 14 | ||||
| -rw-r--r-- | sam/cores/arduino/WInterrupts.h | 4 |
2 files changed, 4 insertions, 14 deletions
diff --git a/sam/cores/arduino/WInterrupts.c b/sam/cores/arduino/WInterrupts.c index 68bd78c..7653d18 100644 --- a/sam/cores/arduino/WInterrupts.c +++ b/sam/cores/arduino/WInterrupts.c @@ -20,8 +20,6 @@ typedef void (*interruptCB)(void); -static int pinMapping[EXTERNAL_NUM_INTERRUPTS] = { 2, 3, 4, 5, 6, 7, 8 }; - static interruptCB callbacksPioA[32]; static interruptCB callbacksPioB[32]; static interruptCB callbacksPioC[32]; @@ -55,11 +53,8 @@ static void __initialize() { } -void attachInterrupt(uint32_t interruptNum, void (*callback)(void), uint32_t mode) +void attachInterrupt(uint32_t pin, void (*callback)(void), uint32_t mode) { - if (interruptNum >= EXTERNAL_NUM_INTERRUPTS) - return; - static int enabled = 0; if (!enabled) { __initialize(); @@ -67,7 +62,6 @@ void attachInterrupt(uint32_t interruptNum, void (*callback)(void), uint32_t mod } // Retrieve pin information - uint32_t pin = pinMapping[interruptNum]; Pio *pio = g_APinDescription[pin].pPort; uint32_t mask = g_APinDescription[pin].ulPin; uint32_t pos = 0; @@ -115,13 +109,9 @@ void attachInterrupt(uint32_t interruptNum, void (*callback)(void), uint32_t mod pio->PIO_IER = mask; } -void detachInterrupt( uint32_t interruptNum ) +void detachInterrupt(uint32_t pin) { - if (interruptNum >= EXTERNAL_NUM_INTERRUPTS) - return; - // Retrieve pin information - uint32_t pin = pinMapping[interruptNum]; Pio *pio = g_APinDescription[pin].pPort; uint32_t mask = g_APinDescription[pin].ulPin; diff --git a/sam/cores/arduino/WInterrupts.h b/sam/cores/arduino/WInterrupts.h index 3220e85..bb698cd 100644 --- a/sam/cores/arduino/WInterrupts.h +++ b/sam/cores/arduino/WInterrupts.h @@ -25,9 +25,9 @@ extern "C" { #endif -void attachInterrupt(uint32_t interruptNum, void (*callback)(void), uint32_t mode); +void attachInterrupt(uint32_t pin, void (*callback)(void), uint32_t mode); -void detachInterrupt(uint32_t interruptNum); +void detachInterrupt(uint32_t pin); #ifdef __cplusplus } |
