Skip to content

Commit c7baecc

Browse files
committed
Added pinToInterrupt() variant macro (Paul Stoffregen)
1 parent 5130891 commit c7baecc

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed

Diff for: variants/leonardo/pins_arduino.h

+2
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,8 @@ static const uint8_t A11 = 29; // D12
132132
extern const uint8_t PROGMEM analog_pin_to_channel_PGM[];
133133
#define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) )
134134

135+
#define digitalPinToInterrupt(p) ((p) == 0 ? 2 : ((p) == 1 ? 3 : ((p) == 2 ? 1 : ((p) == 3 ? 0 : ((p) == 7 ? 4 : -1)))))
136+
135137
#ifdef ARDUINO_MAIN
136138

137139
// On the Arduino board, digital pins are also used

Diff for: variants/mega/pins_arduino.h

+3-1
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ static const uint8_t A15 = 69;
8383
( (((p) >= 62) && ((p) <= 69)) ? ((p) - 62) : \
8484
0 ) ) ) ) ) )
8585

86+
#define digitalPinToInterrupt(p) ((p) == 2 ? 0 : ((p) == 3 ? 1 : ((p) >= 18 && (p) <= 21 ? 23 - (p) : -1)))
87+
8688
#ifdef ARDUINO_MAIN
8789

8890
const uint16_t PROGMEM port_to_mode_PGM[] = {
@@ -360,4 +362,4 @@ const uint8_t PROGMEM digital_pin_to_timer_PGM[] = {
360362

361363
#endif
362364

363-
#endif
365+
#endif

Diff for: variants/standard/pins_arduino.h

+2
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ static const uint8_t A7 = 21;
6060
#define digitalPinToPCMSK(p) (((p) <= 7) ? (&PCMSK2) : (((p) <= 13) ? (&PCMSK0) : (((p) <= 21) ? (&PCMSK1) : ((uint8_t *)0))))
6161
#define digitalPinToPCMSKbit(p) (((p) <= 7) ? (p) : (((p) <= 13) ? ((p) - 8) : ((p) - 14)))
6262

63+
#define digitalPinToInterrupt(p) ((p) == 2 ? 0 : ((p) == 3 ? 1 : -1))
64+
6365
#ifdef ARDUINO_MAIN
6466

6567
// On the Arduino board, digital pins are also used

0 commit comments

Comments
 (0)