From e0f83a3617cce1164c19db854d4aac3b553bf3b9 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 30 Jun 2014 18:24:08 +0200 Subject: [PATCH 1/2] Backported digitalPinToInterrupt macro from IDE 1.5.x --- hardware/arduino/variants/leonardo/pins_arduino.h | 2 ++ hardware/arduino/variants/mega/pins_arduino.h | 2 ++ hardware/arduino/variants/robot_control/pins_arduino.h | 2 ++ hardware/arduino/variants/robot_motor/pins_arduino.h | 2 ++ hardware/arduino/variants/standard/pins_arduino.h | 2 ++ 5 files changed, 10 insertions(+) diff --git a/hardware/arduino/variants/leonardo/pins_arduino.h b/hardware/arduino/variants/leonardo/pins_arduino.h index 473b92e3b..fd75373c1 100644 --- a/hardware/arduino/variants/leonardo/pins_arduino.h +++ b/hardware/arduino/variants/leonardo/pins_arduino.h @@ -133,6 +133,8 @@ static const uint8_t A11 = 29; // D12 extern const uint8_t PROGMEM analog_pin_to_channel_PGM[]; #define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) ) +#define digitalPinToInterrupt(p) ((p) == 0 ? 2 : ((p) == 1 ? 3 : ((p) == 2 ? 1 : ((p) == 3 ? 0 : ((p) == 7 ? 4 : NOT_AN_INTERRUPT))))) + #ifdef ARDUINO_MAIN // On the Arduino board, digital pins are also used diff --git a/hardware/arduino/variants/mega/pins_arduino.h b/hardware/arduino/variants/mega/pins_arduino.h index 9991a21c1..a80991b3c 100644 --- a/hardware/arduino/variants/mega/pins_arduino.h +++ b/hardware/arduino/variants/mega/pins_arduino.h @@ -83,6 +83,8 @@ static const uint8_t A15 = 69; ( (((p) >= 62) && ((p) <= 69)) ? ((p) - 62) : \ 0 ) ) ) ) ) ) +#define digitalPinToInterrupt(p) ((p) == 2 ? 0 : ((p) == 3 ? 1 : ((p) >= 18 && (p) <= 21 ? 23 - (p) : NOT_AN_INTERRUPT))) + #ifdef ARDUINO_MAIN const uint16_t PROGMEM port_to_mode_PGM[] = { diff --git a/hardware/arduino/variants/robot_control/pins_arduino.h b/hardware/arduino/variants/robot_control/pins_arduino.h index 4acfc0df8..b868064ea 100644 --- a/hardware/arduino/variants/robot_control/pins_arduino.h +++ b/hardware/arduino/variants/robot_control/pins_arduino.h @@ -94,6 +94,8 @@ static const uint8_t LED1 = 17; // D17 - RX_Led extern const uint8_t PROGMEM analog_pin_to_channel_PGM[]; #define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) ) +#define digitalPinToInterrupt(p) ((p) == 0 ? 2 : ((p) == 1 ? 3 : ((p) == 2 ? 1 : ((p) == 3 ? 0 : ((p) == 7 ? 4 : NOT_AN_INTERRUPT))))) + #ifdef ARDUINO_MAIN // On the Arduino board, digital pins are also used diff --git a/hardware/arduino/variants/robot_motor/pins_arduino.h b/hardware/arduino/variants/robot_motor/pins_arduino.h index fdb4c6773..7dc4a79b0 100644 --- a/hardware/arduino/variants/robot_motor/pins_arduino.h +++ b/hardware/arduino/variants/robot_motor/pins_arduino.h @@ -89,6 +89,8 @@ static const uint8_t TK4 = 12; // A11 extern const uint8_t PROGMEM analog_pin_to_channel_PGM[]; #define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) ) +#define digitalPinToInterrupt(p) ((p) == 0 ? 2 : ((p) == 1 ? 3 : ((p) == 2 ? 1 : ((p) == 3 ? 0 : ((p) == 7 ? 4 : NOT_AN_INTERRUPT))))) + #ifdef ARDUINO_MAIN // On the Arduino board, digital pins are also used diff --git a/hardware/arduino/variants/standard/pins_arduino.h b/hardware/arduino/variants/standard/pins_arduino.h index 2e24e1979..3d4a9f6c7 100644 --- a/hardware/arduino/variants/standard/pins_arduino.h +++ b/hardware/arduino/variants/standard/pins_arduino.h @@ -60,6 +60,8 @@ static const uint8_t A7 = 21; #define digitalPinToPCMSK(p) (((p) <= 7) ? (&PCMSK2) : (((p) <= 13) ? (&PCMSK0) : (((p) <= 21) ? (&PCMSK1) : ((uint8_t *)0)))) #define digitalPinToPCMSKbit(p) (((p) <= 7) ? (p) : (((p) <= 13) ? ((p) - 8) : ((p) - 14))) +#define digitalPinToInterrupt(p) ((p) == 2 ? 0 : ((p) == 3 ? 1 : NOT_AN_INTERRUPT)) + #ifdef ARDUINO_MAIN // On the Arduino board, digital pins are also used From f73209728dfec37c11e5d33c54f0929ac21976a7 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 30 Jun 2014 18:24:42 +0200 Subject: [PATCH 2/2] Updated revision log --- build/shared/revisions.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/build/shared/revisions.txt b/build/shared/revisions.txt index 496da4b94..7b5f7f83f 100644 --- a/build/shared/revisions.txt +++ b/build/shared/revisions.txt @@ -8,6 +8,7 @@ ARDUINO 1.0.6 - not yet released * Fixed wrong NULL pointer handling in Stream class (Amulya Kumar Sahoo) * Backported String class from IDE 1.5.x (Matt Jenkins) * Backported Print class from IDE 1.5.x +* Backported digitalPinToInterrupt macro from IDE 1.5.x [ide] * Added compatibility for IDE 1.5.x libraries layout