Need support? support@freenove.com
touch_pad_intr_enable();
xTaskCreateUniversal(task_Touch, "task_Touch", 4096, NULL, 1, NULL, 1);
}
Touch sensor thread callback function.
void task_Touch(void *pvParameters) {
Serial.printf("task_Touch is running...\r\n");
while (1) {
task_TouchPad(NULL);
}
}
Touch function threshold setting function. When the sensor is touched, the internal capacitor discharges,
and the data change can be detected at the touch pin. Here, 4/5 of the value of the touch sensor without
contact is set as the threshold trigger range.
static uint32_t s_pad_init_val;
static void tp_example_set_thresholds(void) {
uint16_t touch_value;
// read filtered value
touch_pad_read_filtered(PIN_TOUCH_PAD, &touch_value);
s_pad_init_val = touch_value;
// set interrupt threshold.
touch_pad_set_thresh(PIN_TOUCH_PAD, touch_value * 4 / 5);
}
Touch sensor interrupt trigger function. Execute this function every time the touch sensor is triggered, to set
touchPadVal to true.
12
13
14
15
16
17
18
19
20
21
22
bool touchPadVal = false;
void isr_touchpad(void *arg) {
// uint16_t touchVal = 0;
uint32_t touchStatus = 0;
touchStatus = touch_pad_get_status(); // TOUCHPAD3 : 0000 1000 = 0x08
if (touchStatus == 0x08) // TOUCHPAD3
{
touchPadVal = true;
}
touch_pad_clear_status();
}