cs-midi/AH/Hardware/ExtendedInputOutput/ExtendedInputOutput.hpp

37 lines
1022 B
C++

#pragma once
#include <AH/Hardware/Arduino-Hardware-Types.hpp>
#include <AH/Settings/NamespaceSettings.hpp>
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