removed detachinterrupt from pin manager, added it to set.cpp instead

This commit is contained in:
Damian Schneider 2024-04-07 13:49:17 +02:00
parent 0637c1c9d4
commit d3a97f1062
2 changed files with 5 additions and 6 deletions

View File

@ -32,11 +32,6 @@ bool PinManagerClass::deallocatePin(byte gpio, PinOwner tag)
return false; return false;
} }
#ifdef SOC_TOUCH_VERSION_2 // ESP32 S2 and S3 have a fucntion to check touch state, detach any previous assignments
if (digitalPinToTouchChannel(gpio) >= 0) //if touch capable pin
touchDetachInterrupt(gpio);
#endif
byte by = gpio >> 3; byte by = gpio >> 3;
byte bi = gpio - 8*by; byte bi = gpio - 8*by;
bitWrite(pinAlloc[by], bi, false); bitWrite(pinAlloc[by], bi, false);

View File

@ -108,6 +108,10 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage)
for (uint8_t s=0; s<WLED_MAX_BUTTONS; s++) { for (uint8_t s=0; s<WLED_MAX_BUTTONS; s++) {
if (btnPin[s]>=0 && pinManager.isPinAllocated(btnPin[s], PinOwner::Button)) { if (btnPin[s]>=0 && pinManager.isPinAllocated(btnPin[s], PinOwner::Button)) {
pinManager.deallocatePin(btnPin[s], PinOwner::Button); pinManager.deallocatePin(btnPin[s], PinOwner::Button);
#ifdef SOC_TOUCH_VERSION_2 // ESP32 S2 and S3 have a function to check touch state, detach interrupt
if (digitalPinToTouchChannel(btnPin[i]) >= 0) // if touch capable pin
touchDetachInterrupt(btnPin[i]); // if not assigned previously, this will do nothing
#endif
} }
} }
@ -270,7 +274,7 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage)
#endif #endif
} }
else else
#endif #endif
{ {
if (disablePullUp) { if (disablePullUp) {
pinMode(btnPin[i], INPUT); pinMode(btnPin[i], INPUT);