MIDI Elements
Library to simplify handling of components for MIDI controllers
 All Classes Files Functions Variables Macros
direct_pin_read.h
Go to the documentation of this file.
1 #ifndef direct_pin_read_h_
2 #define direct_pin_read_h_
3 
4 #if defined(__AVR__) || defined(__MK20DX128__) || defined(__MK20DX256__)
5 
6 #define IO_REG_TYPE uint8_t
7 #define PIN_TO_BASEREG(pin) (portInputRegister(digitalPinToPort(pin)))
8 #define PIN_TO_BITMASK(pin) (digitalPinToBitMask(pin))
9 #define DIRECT_PIN_READ(base, mask) (((*(base)) & (mask)) ? 1 : 0)
10 
11 #elif defined(__SAM3X8E__)
12 
13 #define IO_REG_TYPE uint32_t
14 #define PIN_TO_BASEREG(pin) (portInputRegister(digitalPinToPort(pin)))
15 #define PIN_TO_BITMASK(pin) (digitalPinToBitMask(pin))
16 #define DIRECT_PIN_READ(base, mask) (((*(base)) & (mask)) ? 1 : 0)
17 
18 #elif defined(__PIC32MX__)
19 
20 #define IO_REG_TYPE uint32_t
21 #define PIN_TO_BASEREG(pin) (portModeRegister(digitalPinToPort(pin)))
22 #define PIN_TO_BITMASK(pin) (digitalPinToBitMask(pin))
23 #define DIRECT_PIN_READ(base, mask) (((*(base+4)) & (mask)) ? 1 : 0)
24 
25 #endif
26 
27 #endif