15 for (
auto &
el : ExtendedIOElement::getAll())
27 F(
"The given pin does not correspond to an Extended IO element."),
152 if (dataPin == NO_PIN || clockPin == NO_PIN)
#define BEGIN_AH_NAMESPACE
constexpr PinStatus_t LOW
AH::function_traits< decltype(::digitalWrite)>::argument_t< 1 > PinStatus_t
constexpr PinStatus_t HIGH
AH::function_traits< decltype(::pinMode)>::argument_t< 1 > PinMode_t
An abstract base class for Extended Input/Output elements.
pin_t getStart() const
Get the smallest global extended IO pin number that belongs to this extended IO element.
pin_t getEnd() const
Get the largest global extended IO pin number that belongs to this extended IO element.
A class for serial-in/parallel-out shift registers, like the 74HC595 that are connected to the SPI bu...
void pinMode(pin_int_t pin, PinMode_t mode) override __attribute__((deprecated))
The pinMode function is not implemented because the mode is OUTPUT by definition.
PinStatus_t digitalRead(pin_int_t pin) override
Get the current state of a given output pin.
void digitalWrite(pin_int_t pin, PinStatus_t val) override
Set the state of a given output pin.
void analogWriteBuffered(pin_int_t pin, analog_t val) override __attribute__((deprecated))
The analogWrite function is not deprecated because a shift is always digital.
PinStatus_t digitalReadBuffered(pin_int_t pin) override
Get the current state of a given output pin.
void pinModeBuffered(pin_int_t pin, PinMode_t mode) override __attribute__((deprecated))
The pinMode function is not implemented because the mode is OUTPUT by definition.
analog_t analogReadBuffered(pin_int_t pin) override __attribute__((deprecated))
The analogRead function is deprecated because a shift is always digital.
void digitalWriteBuffered(pin_int_t pin, PinStatus_t val) override
Set the output of a given pin in the software buffer.
void analogWrite(pin_int_t pin, analog_t val) override __attribute__((deprecated))
The analogWrite function is not deprecated because a shift is always digital.
analog_t analogRead(pin_int_t pin) override __attribute__((deprecated))
The analogRead function is deprecated because a shift is always digital.
#define FATAL_ERROR(msg, errc)
Print the error message and error code, and stop the execution.
void analogWriteBuffered(pin_t pin, analog_t val)
A buffered ExtIO version of the Arduino function.
bool isNativePin(pin_t pin)
Check if the given pin number is a real Arduino pin number, and not an ExtIO pin number.
void pinModeBuffered(pin_t pin, PinMode_t mode)
A buffered ExtIO version of the Arduino function.
ExtendedIOElement * getIOElementOfPin(pin_t pin)
Find the IO element of a given extended IO pin number.
void digitalWriteBuffered(pin_t pin, PinStatus_t val)
A buffered ExtIO version of the Arduino function.
void analogWrite(pin_t pin, analog_t val)
An ExtIO version of the Arduino function.
void pinMode(pin_t pin, PinMode_t mode)
An ExtIO version of the Arduino function.
ExtendedIOElement * getIOElementOfPinOrNull(pin_t pin)
Find the IO element of a given extended IO pin number.
PinStatus_t digitalReadBuffered(pin_t pin)
A buffered ExtIO version of the Arduino function.
analog_t analogRead(pin_t pin)
An ExtIO version of the Arduino function.
analog_t analogReadBuffered(pin_t pin)
A buffered ExtIO version of the Arduino function.
PinStatus_t digitalRead(pin_t pin)
An ExtIO version of the Arduino function.
void shiftOut(pin_t dataPin, pin_t clockPin, BitOrder_t bitOrder, uint8_t val)
An ExtIO version of the Arduino function.
void digitalWrite(pin_t pin, PinStatus_t val)
An ExtIO version of the Arduino function.
static bool inRange(T target, T start, T end)
uint16_t analog_t
The type returned from analogRead and similar functions.
constexpr ArduinoPin_t arduino_pin_cast(T t)
Type for storing pin numbers of Extended Input/Output elements.