From 07ef56e3cbd6ffc9b083e84777d2ec4186514202 Mon Sep 17 00:00:00 2001
From: Cristian Maglie <c.maglie@bug.st>
Date: Mon, 30 Jun 2014 18:24:08 +0200
Subject: Backported digitalPinToInterrupt macro from IDE 1.5.x

---
 variants/leonardo/pins_arduino.h      | 2 ++
 variants/mega/pins_arduino.h          | 2 ++
 variants/robot_control/pins_arduino.h | 2 ++
 variants/robot_motor/pins_arduino.h   | 2 ++
 variants/standard/pins_arduino.h      | 2 ++
 5 files changed, 10 insertions(+)

diff --git a/variants/leonardo/pins_arduino.h b/variants/leonardo/pins_arduino.h
index 473b92e..fd75373 100644
--- a/variants/leonardo/pins_arduino.h
+++ b/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/variants/mega/pins_arduino.h b/variants/mega/pins_arduino.h
index 9991a21..a80991b 100644
--- a/variants/mega/pins_arduino.h
+++ b/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/variants/robot_control/pins_arduino.h b/variants/robot_control/pins_arduino.h
index 4acfc0d..b868064 100644
--- a/variants/robot_control/pins_arduino.h
+++ b/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/variants/robot_motor/pins_arduino.h b/variants/robot_motor/pins_arduino.h
index fdb4c67..7dc4a79 100644
--- a/variants/robot_motor/pins_arduino.h
+++ b/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/variants/standard/pins_arduino.h b/variants/standard/pins_arduino.h
index 2e24e19..3d4a9f6 100644
--- a/variants/standard/pins_arduino.h
+++ b/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
-- 
cgit v1.2.3-18-g5258