diff --git a/utility/direct_pin_read.h b/utility/direct_pin_read.h index 75660ac..15922d8 100644 --- a/utility/direct_pin_read.h +++ b/utility/direct_pin_read.h @@ -117,17 +117,19 @@ IO_REG_TYPE directRead(volatile IO_REG_TYPE *base, IO_REG_TYPE pin) #define PIN_TO_BITMASK(pin) (digitalPinToBitMask(pin)) #define DIRECT_PIN_READ(base, mask) (((*(base)) & (mask)) ? 1 : 0) -#elif defined(ARDUINO_GIGA) +#elif defined(ARDUINO_UNO_Q) - #define digitalPinToPort(P) (digitalPinToPinName(P)/32) - #define digitalPinToBitMask(P) (1 << (digitalPinToPinName(P) % 32)) - #define portModeRegister(P) (uint32_t*)P +#define IO_REG_TYPE uint32_t +#define PIN_TO_BASEREG(pin) (0) +#define PIN_TO_BITMASK(pin) (pin) +#define DIRECT_PIN_READ(base, pin) digitalRead(pin) - #define IO_REG_TYPE uint32_t - #define PIN_TO_BASEREG(pin) portModeRegister(digitalPinToPort(pin)) - #define PIN_TO_BITMASK(pin) (digitalPinToBitMask(pin)) - #define DIRECT_PIN_READ(base, pin) digitalRead(pin) - +#elif defined(ARDUINO_GIGA) + +#define IO_REG_TYPE uint32_t +#define PIN_TO_BASEREG(pin) (0) +#define PIN_TO_BITMASK(pin) (pin) +#define DIRECT_PIN_READ(base, pin) digitalRead(pin) #endif diff --git a/utility/interrupt_pins.h b/utility/interrupt_pins.h index 097b57b..fce2cfd 100644 --- a/utility/interrupt_pins.h +++ b/utility/interrupt_pins.h @@ -400,6 +400,7 @@ #define CORE_INT17_PIN 17 #define CORE_INT18_PIN 18 #define CORE_INT19_PIN 19 + #elif defined(ARDUINO_UNOR4_WIFI) //0, 1, 2, 3, 8, 11, 12, 15, 16, 17, 18 and 19. #define CORE_NUM_INTERRUPT 20 @@ -416,7 +417,28 @@ #define CORE_INT18_PIN 18 #define CORE_INT19_PIN 19 - +#elif defined(ARDUINO_UNO_Q) + #define CORE_NUM_INTERRUPT 20 + #define CORE_INT0_PIN 0 + #define CORE_INT1_PIN 1 + #define CORE_INT2_PIN 2 + #define CORE_INT3_PIN 3 + #define CORE_INT4_PIN 4 + #define CORE_INT5_PIN 5 + #define CORE_INT6_PIN 6 + #define CORE_INT7_PIN 7 + #define CORE_INT8_PIN 8 + #define CORE_INT9_PIN 9 + #define CORE_INT11_PIN 11 + #define CORE_INT12_PIN 12 + #define CORE_INT13_PIN 13 + #define CORE_INT14_PIN A0 + #define CORE_INT15_PIN A1 + #define CORE_INT16_PIN A2 + #define CORE_INT17_PIN A3 + #define CORE_INT18_PIN A4 + #define CORE_INT19_PIN A5 + // Arduino Giga R1 WiFi // All pins are interrupt capable #elif defined(ARDUINO_GIGA) @@ -509,4 +531,3 @@ #error "Encoder requires interrupt pins, but this board does not have any :(" #error "You could try defining ENCODER_DO_NOT_USE_INTERRUPTS as a kludge." #endif -