Выход esp32 из глубокого сна по таймеру и сенсору

Тема в разделе "ESP8266, ESP32", создана пользователем Korsak, 8 июл 2022.

  1. Korsak

    Korsak Нуб

    Добрый день. В сети очень много информации по настройке спящего режима ESP32 с примерами по одному из них. Например, по таймеру или сенсорному пину. По отдельности все прекрасно работает.
    Но мне в проекте нужно объединить оба условия: юзер ничего не трогает - просыпаемся по таймеру-меряем что-то-передаем-засыпаем, если коснулись сенсора - входим режим отображения и настройки, потом опять спим. Таких примеров с двумя условиями не видел. Попробовал объединить два стандартных примера, описав условия пробуждения
    Код (C++):
    esp_sleep_enable_touchpad_wakeup();
     
      esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
    При этом по таймеру просыпается, а на сенсор не реагирует. Кто-нибудь знает решение?
     
  2. parovoZZ

    parovoZZ Гуру

    а даташит что говорит? Можно ли одновременно два таких прерывания разрешить?
     
  3. Korsak

    Korsak Нуб

    Судя по этому, можно комбинировать, в других источниках про возможность комбинации тоже упоминалось, но примеров никто не приводил или я их не нашел.
     
  4. parovoZZ

    parovoZZ Гуру

    ну раз возможно, значит устанавливаются биты в соответствующих регистрах и далее уходим в сон.