mirror of
				https://github.com/esphome/esphome.git
				synced 2025-11-04 00:51:49 +00:00 
			
		
		
		
	Esp32c3 deepsleep fix (#3454)
This commit is contained in:
		@@ -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);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user