mirror of
https://github.com/esphome/esphome.git
synced 2024-11-23 07:28:10 +01:00
Esp32c3 deepsleep fix (#3454)
This commit is contained in:
parent
4822abde86
commit
e541ae400c
2 changed files with 16 additions and 4 deletions
|
@ -21,6 +21,7 @@ optional<uint32_t> DeepSleepComponent::get_run_duration_() const {
|
||||||
switch (wakeup_cause) {
|
switch (wakeup_cause) {
|
||||||
case ESP_SLEEP_WAKEUP_EXT0:
|
case ESP_SLEEP_WAKEUP_EXT0:
|
||||||
case ESP_SLEEP_WAKEUP_EXT1:
|
case ESP_SLEEP_WAKEUP_EXT1:
|
||||||
|
case ESP_SLEEP_WAKEUP_GPIO:
|
||||||
return this->wakeup_cause_to_run_duration_->gpio_cause;
|
return this->wakeup_cause_to_run_duration_->gpio_cause;
|
||||||
case ESP_SLEEP_WAKEUP_TOUCHPAD:
|
case ESP_SLEEP_WAKEUP_TOUCHPAD:
|
||||||
return this->wakeup_cause_to_run_duration_->touch_cause;
|
return this->wakeup_cause_to_run_duration_->touch_cause;
|
||||||
|
@ -72,18 +73,27 @@ float DeepSleepComponent::get_loop_priority() const {
|
||||||
return -100.0f; // run after everything else is ready
|
return -100.0f; // run after everything else is ready
|
||||||
}
|
}
|
||||||
void DeepSleepComponent::set_sleep_duration(uint32_t time_ms) { this->sleep_duration_ = uint64_t(time_ms) * 1000; }
|
void DeepSleepComponent::set_sleep_duration(uint32_t time_ms) { this->sleep_duration_ = uint64_t(time_ms) * 1000; }
|
||||||
#ifdef USE_ESP32
|
#if defined(USE_ESP32)
|
||||||
void DeepSleepComponent::set_wakeup_pin_mode(WakeupPinMode wakeup_pin_mode) {
|
void DeepSleepComponent::set_wakeup_pin_mode(WakeupPinMode wakeup_pin_mode) {
|
||||||
this->wakeup_pin_mode_ = wakeup_pin_mode;
|
this->wakeup_pin_mode_ = wakeup_pin_mode;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(USE_ESP32)
|
||||||
#if !defined(USE_ESP32_VARIANT_ESP32C3)
|
#if !defined(USE_ESP32_VARIANT_ESP32C3)
|
||||||
|
|
||||||
void DeepSleepComponent::set_ext1_wakeup(Ext1Wakeup ext1_wakeup) { this->ext1_wakeup_ = ext1_wakeup; }
|
void DeepSleepComponent::set_ext1_wakeup(Ext1Wakeup ext1_wakeup) { this->ext1_wakeup_ = ext1_wakeup; }
|
||||||
|
|
||||||
void DeepSleepComponent::set_touch_wakeup(bool touch_wakeup) { this->touch_wakeup_ = touch_wakeup; }
|
void DeepSleepComponent::set_touch_wakeup(bool touch_wakeup) { this->touch_wakeup_ = touch_wakeup; }
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
void DeepSleepComponent::set_run_duration(WakeupCauseToRunDuration wakeup_cause_to_run_duration) {
|
void DeepSleepComponent::set_run_duration(WakeupCauseToRunDuration wakeup_cause_to_run_duration) {
|
||||||
wakeup_cause_to_run_duration_ = wakeup_cause_to_run_duration;
|
wakeup_cause_to_run_duration_ = wakeup_cause_to_run_duration;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
void DeepSleepComponent::set_run_duration(uint32_t time_ms) { this->run_duration_ = time_ms; }
|
void DeepSleepComponent::set_run_duration(uint32_t time_ms) { this->run_duration_ = time_ms; }
|
||||||
void DeepSleepComponent::begin_sleep(bool manual) {
|
void DeepSleepComponent::begin_sleep(bool manual) {
|
||||||
if (this->prevent_ && !manual) {
|
if (this->prevent_ && !manual) {
|
||||||
|
|
|
@ -70,17 +70,19 @@ class DeepSleepComponent : public Component {
|
||||||
void set_wakeup_pin_mode(WakeupPinMode wakeup_pin_mode);
|
void set_wakeup_pin_mode(WakeupPinMode wakeup_pin_mode);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(USE_ESP32) && !defined(USE_ESP32_VARIANT_ESP32C3)
|
#if defined(USE_ESP32)
|
||||||
|
#if !defined(USE_ESP32_VARIANT_ESP32C3)
|
||||||
|
|
||||||
void set_ext1_wakeup(Ext1Wakeup ext1_wakeup);
|
void set_ext1_wakeup(Ext1Wakeup ext1_wakeup);
|
||||||
|
|
||||||
void set_touch_wakeup(bool touch_wakeup);
|
void set_touch_wakeup(bool touch_wakeup);
|
||||||
|
|
||||||
|
#endif
|
||||||
// Set the duration in ms for how long the code should run before entering
|
// Set the duration in ms for how long the code should run before entering
|
||||||
// deep sleep mode, according to the cause the ESP32 has woken.
|
// deep sleep mode, according to the cause the ESP32 has woken.
|
||||||
void set_run_duration(WakeupCauseToRunDuration wakeup_cause_to_run_duration);
|
void set_run_duration(WakeupCauseToRunDuration wakeup_cause_to_run_duration);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/// Set a duration in ms for how long the code should run before entering deep sleep mode.
|
/// Set a duration in ms for how long the code should run before entering deep sleep mode.
|
||||||
void set_run_duration(uint32_t time_ms);
|
void set_run_duration(uint32_t time_ms);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue