Control Surface main
MIDI Control Surface library for Arduino
Loading...
Searching...
No Matches
ExtendedInputOutput.hpp
Go to the documentation of this file.
1/* ✔ */
2
3#pragma once
4
6#include <AH/STL/climits>
8
10
11class ExtendedIOElement;
12
17namespace ExtIO {
18
21
24inline bool isNativePin(pin_t pin) {
26}
27
35ExtendedIOElement *getIOElementOfPinOrNull(pin_t pin);
38ExtendedIOElement *getIOElementOfPin(pin_t pin);
39
42void pinMode(pin_t pin, PinMode_t mode);
44void pinMode(int pin, PinMode_t mode);
47void digitalWrite(pin_t pin, PinStatus_t val);
49void digitalWrite(int pin, PinStatus_t val);
52PinStatus_t digitalRead(pin_t pin);
54PinStatus_t digitalRead(int pin);
55
58analog_t analogRead(pin_t pin);
60analog_t analogRead(int pin);
63void analogWrite(pin_t pin, analog_t val);
66void analogWrite(pin_t pin, int val);
67#ifndef ESP32
69void analogWrite(int pin, analog_t val);
71void analogWrite(int pin, int val);
72#endif
73
75void shiftOut(pin_t dataPin, pin_t clockPin, BitOrder_t bitOrder, uint8_t val);
77void shiftOut(int dataPin, int clockPin, BitOrder_t bitOrder, uint8_t val);
78
81void pinModeBuffered(pin_t pin, PinMode_t mode);
84void digitalWriteBuffered(pin_t pin, PinStatus_t val);
87PinStatus_t digitalReadBuffered(pin_t pin);
88
91analog_t analogReadBuffered(pin_t pin);
94void analogWriteBuffered(pin_t pin, analog_t val);
97void analogWriteBuffered(pin_t pin, int val);
98
99#if UINT16_MAX != UINT_MAX
101void pinMode(unsigned int pin, PinMode_t mode);
103void digitalWrite(unsigned int pin, PinStatus_t val);
105PinStatus_t digitalRead(unsigned int pin);
106
108analog_t analogRead(unsigned int pin);
109#ifndef ESP32
111void analogWrite(unsigned int pin, analog_t val);
113void analogWrite(unsigned int pin, int val);
114#endif
115
117void shiftOut(unsigned int dataPin, unsigned int clockPin, BitOrder_t bitOrder,
118 uint8_t val);
119#endif
120
122
123} // namespace ExtIO
124
#define END_AH_NAMESPACE
#define BEGIN_AH_NAMESPACE
AH::function_traits< decltype(::digitalWrite)>::argument_t< 1 > PinStatus_t
uint8_t BitOrder_t
AH::function_traits< decltype(::pinMode)>::argument_t< 1 > PinMode_t
An abstract base class for Extended Input/Output elements.
bool isNativePin(pin_t pin)
Check if the given pin number is a real Arduino pin number, and not an ExtIO pin number.
uint16_t pin_t
The type for Arduino pins (and ExtendedIOElement pins).
An array wrapper for easy copying, comparing, and iterating.
Definition Array.hpp:32