From e346d868b92b431507487b0de57b746477a80bec Mon Sep 17 00:00:00 2001 From: Zach Eveland Date: Sat, 19 May 2012 22:05:46 -0400 Subject: [PATCH] added pin change interrupt defines for Leonardo. fix for broken software serial on Leonardo --- variants/leonardo/pins_arduino.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/variants/leonardo/pins_arduino.h b/variants/leonardo/pins_arduino.h index ff9e4f9..d5b32d0 100644 --- a/variants/leonardo/pins_arduino.h +++ b/variants/leonardo/pins_arduino.h @@ -57,6 +57,11 @@ static const uint8_t A9 = 27; // D9 static const uint8_t A10 = 28; // D10 static const uint8_t A11 = 29; // D12 +#define digitalPinToPCICR(p) (((p) >= 0 && (p) <= 21) ? (&PCICR) : ((uint8_t *)0)) +#define digitalPinToPCICRbit(p) (((p) <= 7) ? 2 : (((p) <= 13) ? 0 : 1)) +#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))) + // __AVR_ATmega32U4__ has an unusual mapping of pins to channels extern const uint8_t PROGMEM analog_pin_to_channel_PGM[]; #define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) )