From e6876e7592a71c9e7a392a5e2e9e0d740bdf771c Mon Sep 17 00:00:00 2001 From: Jesse Frush Date: Mon, 4 Jan 2016 22:07:03 -0800 Subject: [PATCH 1/2] Added MKR1000 entry to Boards.h --- Boards.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Boards.h b/Boards.h index a46625ca..8673b57e 100644 --- a/Boards.h +++ b/Boards.h @@ -243,6 +243,23 @@ writePort(port, value, bitmask): Write an 8 bit port. #define PIN_TO_SERVO(p) ((p) - 2) +// Arduino/Genuino MKR1000 +#elif defined(ARDUINO_SAMD_MKR1000) +#define TOTAL_ANALOG_PINS 7 +#define TOTAL_PINS 22 // 8 digital + 3 spi + 2 i2c + 2 uart + 7 analog +#define IS_PIN_DIGITAL(p) (((p) >= 0 && (p) <= 21) && !IS_PIN_SERIAL(p)) +#define IS_PIN_ANALOG(p) ((p) >= 15 && (p) < 15 + TOTAL_ANALOG_PINS) +#define IS_PIN_PWM(p) digitalPinHasPWM(p) +#define IS_PIN_SERVO(p) (IS_PIN_DIGITAL(p) && (p) < MAX_SERVOS) // deprecated since v2.4 +#define IS_PIN_I2C(p) ((p) == 11 || (p) == 12) // SDA = 20, SCL = 21 +#define IS_PIN_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK) // SS = A2 +#define IS_PIN_SERIAL(p) ((p) == PIN_SERIAL1_RX || (p) == PIN_SERIAL1_TX) +#define PIN_TO_DIGITAL(p) (p) +#define PIN_TO_ANALOG(p) ((p) - 15) +#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p) +#define PIN_TO_SERVO(p) (p) // deprecated since v2.4 + + // Arduino Zero // Note this will work with an Arduino Zero Pro, but not with an Arduino M0 Pro // Arduino M0 Pro does not properly map pins to the board labeled pin numbers From ec125b91347f7039c37878d5a291443a849df9f9 Mon Sep 17 00:00:00 2001 From: Jesse Frush Date: Wed, 6 Jan 2016 15:50:39 -0800 Subject: [PATCH 2/2] Updated comments to reflect correct values --- Boards.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Boards.h b/Boards.h index 8673b57e..e084f9cf 100644 --- a/Boards.h +++ b/Boards.h @@ -251,9 +251,9 @@ writePort(port, value, bitmask): Write an 8 bit port. #define IS_PIN_ANALOG(p) ((p) >= 15 && (p) < 15 + TOTAL_ANALOG_PINS) #define IS_PIN_PWM(p) digitalPinHasPWM(p) #define IS_PIN_SERVO(p) (IS_PIN_DIGITAL(p) && (p) < MAX_SERVOS) // deprecated since v2.4 -#define IS_PIN_I2C(p) ((p) == 11 || (p) == 12) // SDA = 20, SCL = 21 -#define IS_PIN_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK) // SS = A2 -#define IS_PIN_SERIAL(p) ((p) == PIN_SERIAL1_RX || (p) == PIN_SERIAL1_TX) +#define IS_PIN_I2C(p) ((p) == 11 || (p) == 12) // SDA = 11, SCL = 12 +#define IS_PIN_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK) +#define IS_PIN_SERIAL(p) ((p) == PIN_SERIAL1_RX || (p) == PIN_SERIAL1_TX) //defined in variant.h RX = 13, TX = 14 #define PIN_TO_DIGITAL(p) (p) #define PIN_TO_ANALOG(p) ((p) - 15) #define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)