Control Surface new-input
MIDI Control Surface library for Arduino
Arduino-Hardware-Types.hpp
Go to the documentation of this file.
1 #pragma once
2 
4 AH_DIAGNOSTIC_WERROR() // Enable errors on warnings
5 
6 #include <AH/Hardware/Hardware-Types.hpp>
8 
10 #include <AH/Arduino-Wrapper.h> // pin functions and constants
12 
13 
14 #if defined(ARDUINO_API_VERSION)
15 
16 using ArduinoPin_t = pin_size_t;
17 using PinStatus_t = PinStatus;
18 using PinMode_t = PinMode;
19 using BitOrder_t = BitOrder;
20 
21 #else // ARDUINO_API_VERSION
22 
23 using ArduinoPin_t =
24  AH::function_traits<decltype(::digitalWrite)>::argument_t<0>;
25 using PinStatus_t =
26  AH::function_traits<decltype(::digitalWrite)>::argument_t<1>;
27 using PinMode_t = AH::function_traits<decltype(::pinMode)>::argument_t<1>;
28 
29 #if defined(ARDUINO_ARCH_SAM) || defined(ARDUINO_ARCH_SAMD)
30 using BitOrder_t = BitOrder;
31 #else
32 using BitOrder_t = uint8_t;
33 #endif
34 
35 namespace AH_pin_detail {
36 constexpr static auto tmp_HIGH = HIGH;
37 constexpr static auto tmp_LOW = LOW;
38 constexpr static auto tmp_INPUT = INPUT;
39 constexpr static auto tmp_OUTPUT = OUTPUT;
40 constexpr static auto tmp_INPUT_PULLUP = INPUT_PULLUP;
41 } // namespace AH_pin_detail
42 #ifdef HIGH
43 #undef HIGH
44 #define HIGH HIGH
45 #endif
46 #ifdef LOW
47 #undef LOW
48 #define LOW LOW
49 #endif
50 #ifdef INPUT
51 #undef INPUT
52 #define INPUT INPUT
53 #endif
54 #ifdef OUTPUT
55 #undef OUTPUT
56 #define OUTPUT OUTPUT
57 #endif
58 #ifdef INPUT_PULLUP
59 #undef INPUT_PULLUP
60 #define INPUT_PULLUP INPUT_PULLUP
61 #endif
67 
68 #endif // ARDUINO_API_VERSION
69 
constexpr PinStatus_t LOW
AH::function_traits< decltype(::digitalWrite)>::argument_t< 0 > ArduinoPin_t
constexpr PinMode_t INPUT
uint8_t BitOrder_t
constexpr PinStatus_t HIGH
AH::function_traits< decltype(::pinMode)>::argument_t< 1 > PinMode_t
AH::function_traits< decltype(::digitalWrite)>::argument_t< 1 > PinStatus_t
constexpr PinMode_t INPUT_PULLUP
constexpr PinMode_t OUTPUT
#define AH_DIAGNOSTIC_EXTERNAL_HEADER()
Definition: Warnings.hpp:37
#define AH_DIAGNOSTIC_POP()
Definition: Warnings.hpp:36
#define AH_DIAGNOSTIC_WERROR()
Definition: Warnings.hpp:35
void pinMode(pin_t pin, PinMode_t mode)
An ExtIO version of the Arduino function.
void digitalWrite(pin_t pin, PinStatus_t val)
An ExtIO version of the Arduino function.
constexpr static auto tmp_INPUT
constexpr static auto tmp_INPUT_PULLUP
constexpr static auto tmp_HIGH
constexpr static auto tmp_LOW
constexpr static auto tmp_OUTPUT