From b1b1d7ff5450ddce4d878d3bf60499a398f5f030 Mon Sep 17 00:00:00 2001 From: Kim Date: Sat, 25 Apr 2015 13:12:43 +0200 Subject: [PATCH] Add direct I/O code for ESP8266 --- CapacitiveSensor.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CapacitiveSensor.h b/CapacitiveSensor.h index 1cebd6b..089ad49 100644 --- a/CapacitiveSensor.h +++ b/CapacitiveSensor.h @@ -64,6 +64,17 @@ #define DIRECT_WRITE_LOW(base, mask) ((*(base+8+1)) = (mask)) //LATXCLR + 0x24 #define DIRECT_WRITE_HIGH(base, mask) ((*(base+8+2)) = (mask)) //LATXSET + 0x28 +#elif defined(ARDUINO_ARCH_ESP8266) +#define PIN_TO_BASEREG(pin) (portOutputRegister(digitalPinToPort(pin))) +#define PIN_TO_BITMASK(pin) (digitalPinToBitMask(pin)) +#define IO_REG_TYPE uint32_t +#define IO_REG_ASM +#define DIRECT_READ(base, mask) (((*(base+6)) & (mask)) ? 1 : 0) //GPIO_IN_ADDRESS +#define DIRECT_MODE_INPUT(base, mask) ((*(base+5)) = (mask)) //GPIO_ENABLE_W1TC_ADDRESS +#define DIRECT_MODE_OUTPUT(base, mask) ((*(base+4)) = (mask)) //GPIO_ENABLE_W1TS_ADDRESS +#define DIRECT_WRITE_LOW(base, mask) ((*(base+2)) = (mask)) //GPIO_OUT_W1TC_ADDRESS +#define DIRECT_WRITE_HIGH(base, mask) ((*(base+1)) = (mask)) //GPIO_OUT_W1TS_ADDRESS + #endif // some 3.3V chips with 5V tolerant pins need this workaround