mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 15:12:06 +00:00 
			
		
		
		
	Esp32c3 deepsleep fix (#3433)
This commit is contained in:
		| @@ -76,12 +76,14 @@ void DeepSleepComponent::set_sleep_duration(uint32_t time_ms) { this->sleep_dura | ||||
| void DeepSleepComponent::set_wakeup_pin_mode(WakeupPinMode wakeup_pin_mode) { | ||||
|   this->wakeup_pin_mode_ = wakeup_pin_mode; | ||||
| } | ||||
| #if !defined(USE_ESP32_VARIANT_ESP32C3) | ||||
| 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_run_duration(WakeupCauseToRunDuration wakeup_cause_to_run_duration) { | ||||
|   wakeup_cause_to_run_duration_ = wakeup_cause_to_run_duration; | ||||
| } | ||||
| #endif | ||||
| #endif | ||||
| void DeepSleepComponent::set_run_duration(uint32_t time_ms) { this->run_duration_ = time_ms; } | ||||
| void DeepSleepComponent::begin_sleep(bool manual) { | ||||
|   if (this->prevent_ && !manual) { | ||||
| @@ -107,7 +109,8 @@ void DeepSleepComponent::begin_sleep(bool manual) { | ||||
|  | ||||
|   App.run_safe_shutdown_hooks(); | ||||
|  | ||||
| #if defined(USE_ESP32) && !defined(USE_ESP32_VARIANT_ESP32C3) | ||||
| #if defined(USE_ESP32) | ||||
| #if !defined(USE_ESP32_VARIANT_ESP32C3) | ||||
|   if (this->sleep_duration_.has_value()) | ||||
|     esp_sleep_enable_timer_wakeup(*this->sleep_duration_); | ||||
|   if (this->wakeup_pin_ != nullptr) { | ||||
| @@ -125,10 +128,7 @@ void DeepSleepComponent::begin_sleep(bool manual) { | ||||
|     esp_sleep_enable_touchpad_wakeup(); | ||||
|     esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON); | ||||
|   } | ||||
|  | ||||
|   esp_deep_sleep_start(); | ||||
| #endif | ||||
|  | ||||
| #ifdef USE_ESP32_VARIANT_ESP32C3 | ||||
|   if (this->sleep_duration_.has_value()) | ||||
|     esp_sleep_enable_timer_wakeup(*this->sleep_duration_); | ||||
| @@ -137,9 +137,12 @@ void DeepSleepComponent::begin_sleep(bool manual) { | ||||
|     if (this->wakeup_pin_mode_ == WAKEUP_PIN_MODE_INVERT_WAKEUP && this->wakeup_pin_->digital_read()) { | ||||
|       level = !level; | ||||
|     } | ||||
|     esp_deep_sleep_enable_gpio_wakeup(gpio_num_t(this->wakeup_pin_->get_pin()), level); | ||||
|     esp_deep_sleep_enable_gpio_wakeup(gpio_num_t(this->wakeup_pin_->get_pin()), | ||||
|                                       static_cast<esp_deepsleep_gpio_wake_up_mode_t>(level)); | ||||
|   } | ||||
| #endif | ||||
|   esp_deep_sleep_start(); | ||||
| #endif | ||||
|  | ||||
| #ifdef USE_ESP8266 | ||||
|   ESP.deepSleep(*this->sleep_duration_);  // NOLINT(readability-static-accessed-through-instance) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user