Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions utility/direct_pin_read.h
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
25 changes: 23 additions & 2 deletions utility/interrupt_pins.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)
Expand Down Expand Up @@ -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