Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

How to disable touch pad interrupts? #2722

Copy link
Copy link
Closed
@rousir

Description

@rousir
Issue body actions

Hardware:

Board: ESP32 Dev Module
Core Installation version: last git
IDE name: Arduino IDE
Flash Frequency: 40Mhz
PSRAM enabled: no
Upload Speed: 115200
Computer OS: Windows 7

Description:

hi,Open the touch function can wake up the device io,how to disable touch pad interrupts?I need a function like detachInterrupt.

Sketch: (leave the backquotes for code formatting)

#include <Arduino.h>

#define PIN_TOUCH1 12
#define PIN_TOUCH2 13
#define PIN_TOUCH3 14
#define PIN_TOUCH4 15

int threshold = 40;

void start_sleep()
{
  //Go to sleep now
  Serial.println("Going to sleep now");
  esp_sleep_enable_touchpad_wakeup();
  esp_deep_sleep_start();
}

void touch1_cb()
{
  Serial.println("touch1_cb");
}

void touch2_cb()
{
  Serial.println("touch2_cb");
}

void touch3_cb()
{
  Serial.println("touch3_cb");
}

void touch4_cb()
{
  Serial.println("touch4_cb");
}


void print_wakeup_reason()
{
  esp_sleep_wakeup_cause_t wakeup_reason;

  wakeup_reason = esp_sleep_get_wakeup_cause();

  switch (wakeup_reason)
  {
  case ESP_SLEEP_WAKEUP_EXT0 :
    Serial.println("Wakeup caused by external signal using RTC_IO");
    break;
  case ESP_SLEEP_WAKEUP_EXT1 :
    Serial.println("Wakeup caused by external signal using RTC_CNTL");
    break;
  case ESP_SLEEP_WAKEUP_TIMER :
    Serial.println("Wakeup caused by timer");
    break;
  case ESP_SLEEP_WAKEUP_TOUCHPAD :
    Serial.println("Wakeup caused by touchpad");
    break;
  case ESP_SLEEP_WAKEUP_ULP :
    Serial.println("Wakeup caused by ULP program");
    break;
  default :
    Serial.printf("Wakeup was not caused by deep sleep: %d\n", wakeup_reason);
    break;
  }
}

void print_wakeup_touchpad() {
  touch_pad_t touchPin;

  touchPin = esp_sleep_get_touchpad_wakeup_status();

  switch (touchPin)
  {
  case 0  : Serial.println("Touch detected on GPIO 4"); break;
  case 1  : Serial.println("Touch detected on GPIO 0"); break;
  case 2  : Serial.println("Touch detected on GPIO 2"); break;
  case 3  : Serial.println("Touch detected on GPIO 15"); break;
  case 4  : Serial.println("Touch detected on GPIO 13"); break;
  case 5  : Serial.println("Touch detected on GPIO 12"); break;
  case 6  : Serial.println("Touch detected on GPIO 14"); break;
  case 7  : Serial.println("Touch detected on GPIO 27"); break;
  case 8  : Serial.println("Touch detected on GPIO 33"); break;
  case 9  : Serial.println("Touch detected on GPIO 32"); break;
  default : Serial.println("Wakeup not by touchpad"); break;
  }
}



void setup()
{
  Serial.begin(115200);
  Serial.println();
  Serial.println("Starting...");

  print_wakeup_reason();
  print_wakeup_touchpad();

  touchAttachInterrupt(PIN_TOUCH1, touch1_cb, threshold);
  touchAttachInterrupt(PIN_TOUCH2, touch2_cb, threshold);
  touchAttachInterrupt(PIN_TOUCH3, touch3_cb, threshold);
  touchAttachInterrupt(PIN_TOUCH4, touch4_cb, threshold);


  // pinMode(PIN_TOUCH1, OUTPUT);
  // pinMode(PIN_TOUCH2, OUTPUT);
  // pinMode(PIN_TOUCH3, OUTPUT);
  // touch_pad_intr_disable();
  // touch_pad_clear_status();
  start_sleep();
}

void loop()
{

}

Debug Messages:

ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1100
load:0x40078000,len:10312
load:0x40080400,len:6460
entry 0x400806a4

Starting...
Wakeup was not caused by deep sleep: 0
Wakeup not by touchpad
Going to sleep now
ets Jun  8 2016 00:22:57

rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1100
load:0x40078000,len:10312
load:0x40080400,len:6460
entry 0x400806a4

Starting...
Wakeup caused by touchpad
Touch detected on GPIO 12
Going to sleep now
ets Jun  8 2016 00:22:57

rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1100
load:0x40078000,len:10312
load:0x40080400,len:6460
entry 0x400806a4

Starting...
Wakeup caused by touchpad
Touch detected on GPIO 14
Going to sleep now
ets Jun  8 2016 00:22:57

rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1100
load:0x40078000,len:10312
load:0x40080400,len:6460
entry 0x400806a4

Starting...
Wakeup caused by touchpad
Touch detected on GPIO 12
Going to sleep now
ets Jun  8 2016 00:22:57

rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1100
load:0x40078000,len:10312
load:0x40080400,len:6460
entry 0x400806a4

Starting...
Wakeup caused by touchpad
Touch detected on GPIO 13
Going to sleep now

Metadata

Metadata

Assignees

Labels

Status: StaleIssue is stale stage (outdated/stuck)Issue is stale stage (outdated/stuck)

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    Morty Proxy This is a proxified and sanitized view of the page, visit original site.