#pragma once #include #include BEGIN_AH_NAMESPACE class ExtendedIOElement; namespace ExtIO { inline bool isNativePin(pin_t pin) { return pin.pin < NUM_DIGITAL_PINS + NUM_ANALOG_INPUTS; } ExtendedIOElement *getIOElementOfPinOrNull(pin_t pin); ExtendedIOElement *getIOElementOfPin(pin_t pin); void pinMode(pin_t pin, PinMode_t mode); void digitalWrite(pin_t pin, PinStatus_t val); PinStatus_t digitalRead(pin_t pin); analog_t analogRead(pin_t pin); void analogWrite(pin_t pin, analog_t val); void analogWrite(pin_t pin, int val); void shiftOut(pin_t dataPin, pin_t clockPin, BitOrder_t bitOrder, uint8_t val); void pinModeBuffered(pin_t pin, PinMode_t mode); void digitalWriteBuffered(pin_t pin, PinStatus_t val); PinStatus_t digitalReadBuffered(pin_t pin); analog_t analogReadBuffered(pin_t pin); void analogWriteBuffered(pin_t pin, analog_t val); void analogWriteBuffered(pin_t pin, int val); } // namespace ExtIO END_AH_NAMESPACE