From 9e81dc7ebe2b63c87ae829e170a8b66f6eb9c72f Mon Sep 17 00:00:00 2001 From: ldebat Date: Thu, 29 Sep 2022 21:17:22 +0200 Subject: [PATCH] Offers possibility to deactivate default INPUT_PULLUP pin mode --- Encoder.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Encoder.h b/Encoder.h index 9ed35ee..dac6a1b 100644 --- a/Encoder.h +++ b/Encoder.h @@ -51,6 +51,10 @@ #define ENCODER_ARGLIST_SIZE 0 #endif +#if defined(ENCODER_USE_PULLUP) || !defined(ENCODER_DO_NOT_USE_PULLUP) +#define ENCODER_USE_PULLUP +#endif + // Use ICACHE_RAM_ATTR for ISRs to prevent ESP8266 resets #if defined(ESP8266) || defined(ESP32) #define ENCODER_ISR_ATTR ICACHE_RAM_ATTR @@ -77,15 +81,17 @@ class Encoder { public: Encoder(uint8_t pin1, uint8_t pin2) { - #ifdef INPUT_PULLUP + #if defined(INPUT_PULLUP) && defined(ENCODER_USE_PULLUP) pinMode(pin1, INPUT_PULLUP); pinMode(pin2, INPUT_PULLUP); #else pinMode(pin1, INPUT); - digitalWrite(pin1, HIGH); pinMode(pin2, INPUT); + #if defined(ENCODER_USE_PULLUP) + digitalWrite(pin1, HIGH); digitalWrite(pin2, HIGH); #endif + #endif encoder.pin1_register = PIN_TO_BASEREG(pin1); encoder.pin1_bitmask = PIN_TO_BITMASK(pin1); encoder.pin2_register = PIN_TO_BASEREG(pin2);