mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-09 20:41:14 +00:00
update touch sensor examples
This commit is contained in:
@@ -62,6 +62,7 @@ static SemaphoreHandle_t rtc_touch_mux = NULL;
|
||||
Touch Pad
|
||||
---------------------------------------------------------------*/
|
||||
|
||||
#if CONFIG_IDF_TARGET_ESP32S2
|
||||
/** Workaround for scan done interrupt issue. */
|
||||
static void touch_pad_workaround_isr_internal(void *arg)
|
||||
{
|
||||
@@ -81,6 +82,7 @@ static void touch_pad_workaround_isr_internal(void *arg)
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
esp_err_t touch_pad_isr_register(intr_handler_t fn, void *arg, touch_pad_intr_mask_t intr_mask)
|
||||
{
|
||||
@@ -104,13 +106,19 @@ esp_err_t touch_pad_isr_register(intr_handler_t fn, void *arg, touch_pad_intr_ma
|
||||
if (intr_mask & TOUCH_PAD_INTR_MASK_TIMEOUT) {
|
||||
en_msk |= RTC_CNTL_TOUCH_TIMEOUT_INT_ST_M;
|
||||
}
|
||||
#if SOC_TOUCH_PROXIMITY_MEAS_DONE_SUPPORTED
|
||||
if (intr_mask & TOUCH_PAD_INTR_MASK_PROXI_MEAS_DONE) {
|
||||
en_msk |= RTC_CNTL_TOUCH_APPROACH_LOOP_DONE_INT_ST_M;
|
||||
}
|
||||
#endif
|
||||
esp_err_t ret = rtc_isr_register(fn, arg, en_msk);
|
||||
#if CONFIG_IDF_TARGET_ESP32S2
|
||||
/* Must ensure: After being registered, it is executed first. */
|
||||
if ( (ret == ESP_OK) && (reg_flag == false) && (intr_mask & (TOUCH_PAD_INTR_MASK_SCAN_DONE | TOUCH_PAD_INTR_MASK_TIMEOUT)) ) {
|
||||
rtc_isr_register(touch_pad_workaround_isr_internal, NULL, RTC_CNTL_TOUCH_SCAN_DONE_INT_ST_M | RTC_CNTL_TOUCH_TIMEOUT_INT_ST_M);
|
||||
reg_flag = true;
|
||||
}
|
||||
|
||||
#endif
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user