Skip to content

Commit

Permalink
Revert "fixed touch buttons for ESP32 S2 and S3"
Browse files Browse the repository at this point in the history
This reverts commit 0904155.
  • Loading branch information
DedeHai committed Mar 8, 2024
1 parent 62a975d commit 66ac5ac
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 35 deletions.
27 changes: 4 additions & 23 deletions wled00/button.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,21 +99,11 @@ bool isButtonPressed(uint8_t i)
case BTN_TYPE_TOUCH:
case BTN_TYPE_TOUCH_SWITCH:
#if defined(ARDUINO_ARCH_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32C3)
#ifdef SOC_TOUCH_VERSION_2 //ESP32 S2 and S3 provide a function to check touch state (state is updated in interrupt)
if (touchInterruptGetLastStatus(pin))
{
return true;
}
#else
if (digitalPinToTouchChannel(btnPin[i]) >= 0 && touchRead(pin) <= touchThreshold)
{
return true;
}
#endif
if (digitalPinToTouchChannel(btnPin[i]) >= 0 && touchRead(pin) <= touchThreshold) return true;
#endif
break;
}
return false;
break;
}
return false;
}

void handleSwitch(uint8_t b)
Expand Down Expand Up @@ -416,12 +406,3 @@ void handleIO()
offMode = true;
}
}

void IRAM_ATTR touchButtonISR()
{

#if defined SOC_TOUCH_VERSION_1 //ESP32 original
touchInterruptSetThresholdDirection(flase); //todo: need to flip direction, for that proably need to read current state or something.
#endif
// For S2 and S3: nothing to do, ISR is just used to update registers of HAL driver
}
13 changes: 2 additions & 11 deletions wled00/cfg.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,6 @@ bool deserializeConfig(JsonObject doc, bool fromFS) {

// read multiple button configuration
JsonObject btn_obj = hw["btn"];
CJSON(touchThreshold, btn_obj[F("tt")]);
bool pull = btn_obj[F("pull")] | (!disablePullUp); // if true, pullup is enabled
disablePullUp = !pull;
JsonArray hw_btn_ins = btn_obj["ins"];
Expand All @@ -253,16 +252,8 @@ bool deserializeConfig(JsonObject doc, bool fromFS) {
btnPin[s] = -1;
pinManager.deallocatePin(pin,PinOwner::Button);
}
//if touch pin, enable the touch interrupt on ESP32 S2 & S3
#ifdef SOC_TOUCH_VERSION_2 // ESP32 S2 and S3 have a fucntion to check touch state but need to attach an interrupt to do so
else if ((buttonType[s] == BTN_TYPE_TOUCH || buttonType[s] == BTN_TYPE_TOUCH_SWITCH))
{
touchAttachInterrupt(btnPin[s], touchButtonISR, touchThreshold<<2); //threshold on Touch V2 is much higher (TODO: may need shift by 3 if very noisy)
}
#endif

else
#endif
#endif
{
if (disablePullUp) {
pinMode(btnPin[s], INPUT);
Expand Down Expand Up @@ -308,7 +299,7 @@ bool deserializeConfig(JsonObject doc, bool fromFS) {
}
}
}

CJSON(touchThreshold,btn_obj[F("tt")]);
CJSON(buttonPublishMqtt,btn_obj["mqtt"]);

int hw_ir_pin = hw["ir"]["pin"] | -2; // 4
Expand Down
1 change: 0 additions & 1 deletion wled00/fcn_declare.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ void doublePressAction(uint8_t b=0);
bool isButtonPressed(uint8_t b=0);
void handleButton();
void handleIO();
void IRAM_ATTR touchButtonISR();

//cfg.cpp
bool deserializeConfig(JsonObject doc, bool fromFS = false);
Expand Down

0 comments on commit 66ac5ac

Please sign in to comment.