Skip to content

Commit 3e68702

Browse files
committed
Updating SoftwareSerial pin mapping (pin change interrupts) for Leonardo.
1 parent e346d86 commit 3e68702

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

variants/leonardo/pins_arduino.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,10 @@ static const uint8_t A9 = 27; // D9
5757
static const uint8_t A10 = 28; // D10
5858
static const uint8_t A11 = 29; // D12
5959

60-
#define digitalPinToPCICR(p) (((p) >= 0 && (p) <= 21) ? (&PCICR) : ((uint8_t *)0))
61-
#define digitalPinToPCICRbit(p) (((p) <= 7) ? 2 : (((p) <= 13) ? 0 : 1))
62-
#define digitalPinToPCMSK(p) (((p) <= 7) ? (&PCMSK2) : (((p) <= 13) ? (&PCMSK0) : (((p) <= 21) ? (&PCMSK1) : ((uint8_t *)0))))
63-
#define digitalPinToPCMSKbit(p) (((p) <= 7) ? (p) : (((p) <= 13) ? ((p) - 8) : ((p) - 14)))
60+
#define digitalPinToPCICR(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCICR) : ((uint8_t *)0))
61+
#define digitalPinToPCICRbit(p) 0
62+
#define digitalPinToPCMSK(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCMSK0) : ((uint8_t *)0))
63+
#define digitalPinToPCMSKbit(p) ( ((p) >= 8 && (p) <= 11) ? (p) - 4 : ((p) == 14 ? 3 : ((p) == 15 ? 1 : ((p) == 16 ? 2 : ((p) == 17 ? 0 : (p - A8 + 4))))))
6464

6565
// __AVR_ATmega32U4__ has an unusual mapping of pins to channels
6666
extern const uint8_t PROGMEM analog_pin_to_channel_PGM[];

0 commit comments

Comments
 (0)