1
0
mirror of https://github.com/esphome/esphome.git synced 2025-09-02 11:22:24 +01:00

[touchscreen] Clear interrupt flag before reading touch data. (#8632)

This commit is contained in:
Ben Winslow
2025-04-27 22:29:47 -04:00
committed by GitHub
parent 1da0dff8b1
commit fdc4ec8a57

View File

@@ -50,13 +50,15 @@ void Touchscreen::loop() {
tp.second.x_prev = tp.second.x;
tp.second.y_prev = tp.second.y;
}
// The interrupt flag must be reset BEFORE calling update_touches, otherwise we might miss an interrupt that was
// triggered while we were reading touch data.
this->store_.touched = false;
this->update_touches();
if (this->skip_update_) {
for (auto &tp : this->touches_) {
tp.second.state &= ~STATE_RELEASING;
}
} else {
this->store_.touched = false;
this->defer([this]() { this->send_touches_(); });
if (this->touch_timeout_ > 0) {
// Simulate a touch after <this->touch_timeout_> ms. This will reset any existing timeout operation.