Skip to content

Commit 0f23634

Browse files
committed
{attach,detach}Interrupt() on Due selects directly pin number instead of interrupt number.
1 parent 7b94626 commit 0f23634

File tree

2 files changed

+4
-14
lines changed

2 files changed

+4
-14
lines changed

hardware/arduino/sam/cores/arduino/WInterrupts.c

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020

2121
typedef void (*interruptCB)(void);
2222

23-
static int pinMapping[EXTERNAL_NUM_INTERRUPTS] = { 2, 3, 4, 5, 6, 7, 8 };
24-
2523
static interruptCB callbacksPioA[32];
2624
static interruptCB callbacksPioB[32];
2725
static interruptCB callbacksPioC[32];
@@ -55,19 +53,15 @@ static void __initialize() {
5553
}
5654

5755

58-
void attachInterrupt(uint32_t interruptNum, void (*callback)(void), uint32_t mode)
56+
void attachInterrupt(uint32_t pin, void (*callback)(void), uint32_t mode)
5957
{
60-
if (interruptNum >= EXTERNAL_NUM_INTERRUPTS)
61-
return;
62-
6358
static int enabled = 0;
6459
if (!enabled) {
6560
__initialize();
6661
enabled = 1;
6762
}
6863

6964
// Retrieve pin information
70-
uint32_t pin = pinMapping[interruptNum];
7165
Pio *pio = g_APinDescription[pin].pPort;
7266
uint32_t mask = g_APinDescription[pin].ulPin;
7367
uint32_t pos = 0;
@@ -115,13 +109,9 @@ void attachInterrupt(uint32_t interruptNum, void (*callback)(void), uint32_t mod
115109
pio->PIO_IER = mask;
116110
}
117111

118-
void detachInterrupt( uint32_t interruptNum )
112+
void detachInterrupt(uint32_t pin)
119113
{
120-
if (interruptNum >= EXTERNAL_NUM_INTERRUPTS)
121-
return;
122-
123114
// Retrieve pin information
124-
uint32_t pin = pinMapping[interruptNum];
125115
Pio *pio = g_APinDescription[pin].pPort;
126116
uint32_t mask = g_APinDescription[pin].ulPin;
127117

hardware/arduino/sam/cores/arduino/WInterrupts.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525
extern "C" {
2626
#endif
2727

28-
void attachInterrupt(uint32_t interruptNum, void (*callback)(void), uint32_t mode);
28+
void attachInterrupt(uint32_t pin, void (*callback)(void), uint32_t mode);
2929

30-
void detachInterrupt(uint32_t interruptNum);
30+
void detachInterrupt(uint32_t pin);
3131

3232
#ifdef __cplusplus
3333
}

0 commit comments

Comments
 (0)