4#include <Settings/NamespaceSettings.hpp>
6#include <AH/STL/type_traits>
9#ifdef ARDUINO_ARCH_NRF52840
10#include <pins_arduino.h>
15template <
class RegisterType = const volatile u
int32_t>
18 typename std::remove_cv<RegisterType>::type
bitmask;
23#if defined(__AVR__) || \
24 (defined(TEENSYDUINO) && (defined(KINETISK) || defined(KINETISL)))
33#elif defined(__SAM3X8E__) || defined(ESP32) || defined(ESP8266) || \
42#elif defined(__SAMD21G18A__) || defined(__SAMD21E18A__)
51#elif defined(__IMXRT1052__) || defined(__IMXRT1062__)
59#elif defined(RBL_NRF51822) || defined(ARDUINO_ARCH_NRF52840)
66#if defined(RBL_NRF51822)
68#elif defined(ARDUINO_ARCH_NRF52840)
71#error "Unknown Nordic board"
76#elif defined(ARDUINO_ARCH_RP2040)
79#include <hardware/structs/sio.h>
87#elif defined(ARDUINO_ARCH_MBED)
92#include <drivers/DigitalIn.h>
96 bool read() {
return pin.read(); }
103#elif defined(ARDUINO_UNOR4_MINIMA) || defined(ARDUINO_UNOR4_WIFI)
116#warning "Unknown board. Please define the direct_pin_read function."
constexpr PinStatus_t HIGH
DirectPinRead direct_pin_read(uint8_t pin)
#define BEGIN_CS_NAMESPACE
An array wrapper for easy copying, comparing, and iterating.
std::remove_cv< RegisterType >::type bitmask