Skip to content

Commit

Permalink
Fixed CSTxxx Reset tinming & interrupt filter
Browse files Browse the repository at this point in the history
  • Loading branch information
lewisxhe committed Sep 19, 2023
1 parent 88d3c37 commit c3b24f7
Showing 1 changed file with 21 additions and 3 deletions.
24 changes: 21 additions & 3 deletions src/TouchDrvCSTXXX.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -106,9 +106,9 @@ class TouchDrvCSTXXX :
{
if (__rst != SENSOR_PIN_NONE) {
digitalWrite(__rst, LOW);
delay(3);
delay(30);
digitalWrite(__rst, HIGH);
delay(5);
delay(50);
}
}

Expand Down Expand Up @@ -157,8 +157,16 @@ class TouchDrvCSTXXX :

bool isPressed()
{
static uint32_t lastPulse = 0;
if (__irq != SENSOR_PIN_NONE) {
return digitalRead(__irq) == LOW;
int val = digitalRead(__irq) == LOW;
if (val) {
//Filter low levels with intervals greater than 1000ms
val = (millis() - lastPulse > 1000) ? false : true;
lastPulse = millis();
return val;
}
return false;
}
return getPoint(NULL, NULL);
}
Expand Down Expand Up @@ -202,6 +210,16 @@ class TouchDrvCSTXXX :
default:
break;
}

#ifdef ESP32
if (__irq != SENSOR_PIN_NONE) {
pinMode(__irq, OPEN_DRAIN);
}
if (__rst != SENSOR_PIN_NONE) {
pinMode(__rst, OPEN_DRAIN);
}
#endif

}

void wakeup()
Expand Down

0 comments on commit c3b24f7

Please sign in to comment.