Skip to content

Commit 24308ec

Browse files
committed
feat: Arduino Uno R4 support
1 parent 38e5661 commit 24308ec

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

Boards.h

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,13 @@ writePort(port, value, bitmask): Write an 8 bit port.
141141
#define digitalPinHasPWM(p) IS_PIN_DIGITAL(p)
142142
#endif
143143

144+
#undef IS_PIN_INTERRUPT
145+
#if defined(digitalPinToInterrupt) && defined(NOT_AN_INTERRUPT)
146+
#define IS_PIN_INTERRUPT(p) (digitalPinToInterrupt(p) > NOT_AN_INTERRUPT)
147+
#else
148+
#define IS_PIN_INTERRUPT(p) (0)
149+
#endif
150+
144151
// Arduino Duemilanove, Diecimila, and NG
145152
#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__)
146153
#if defined(NUM_ANALOG_INPUTS) && NUM_ANALOG_INPUTS == 6
@@ -447,6 +454,30 @@ writePort(port, value, bitmask): Write an 8 bit port.
447454
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
448455
#define PIN_TO_SERVO(p) (p) // deprecated since v2.4
449456

457+
// Arduino UNO R4 Minima and Wifi
458+
// The pinout is the same as for the classical UNO R3
459+
#elif defined(ARDUINO_UNOR4_MINIMA) || defined(ARDUINO_UNOR4_WIFI)
460+
#if defined(NUM_ANALOG_INPUTS) && NUM_ANALOG_INPUTS == 6
461+
#define TOTAL_ANALOG_PINS 6
462+
#define TOTAL_PINS 20 // 14 digital + 6 analog
463+
#else
464+
#define TOTAL_ANALOG_PINS 8
465+
#define TOTAL_PINS 22 // 14 digital + 8 analog
466+
#endif
467+
// These have conflicting(?) definitions in the core for this CPU
468+
#undef IS_PIN_PWM
469+
#undef IS_PIN_ANALOG
470+
#define VERSION_BLINK_PIN 13
471+
#define IS_PIN_DIGITAL(p) ((p) >= 2 && (p) <= 19)
472+
#define IS_PIN_ANALOG(p) ((p) >= 14 && (p) < 14 + TOTAL_ANALOG_PINS)
473+
#define IS_PIN_PWM(p) digitalPinHasPWM(p)
474+
#define IS_PIN_SERVO(p) (IS_PIN_DIGITAL(p) && (p) - 2 < MAX_SERVOS)
475+
#define IS_PIN_I2C(p) ((p) == 18 || (p) == 19)
476+
#define IS_PIN_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)
477+
#define PIN_TO_DIGITAL(p) (p)
478+
#define PIN_TO_ANALOG(p) ((p) - 14)
479+
#define PIN_TO_PWM(p) PIN_TO_DIGITAL(p)
480+
#define PIN_TO_SERVO(p) ((p) - 2)
450481

451482
// Teensy 1.0
452483
#elif defined(__AVR_AT90USB162__)

0 commit comments

Comments
 (0)