From 721b58f8c7ff302f2cf3f5ee6732177fffdbcfaa Mon Sep 17 00:00:00 2001 From: Forairaaaaa Date: Tue, 22 Jul 2025 17:55:33 +0800 Subject: [PATCH] Fix atoms3 backlight control (#959) --- main/boards/atoms3-echo-base/atoms3_echo_base.cc | 2 +- main/boards/common/backlight.cc | 4 ++-- main/boards/common/backlight.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/main/boards/atoms3-echo-base/atoms3_echo_base.cc b/main/boards/atoms3-echo-base/atoms3_echo_base.cc index 8709dc63..9d3ca679 100644 --- a/main/boards/atoms3-echo-base/atoms3_echo_base.cc +++ b/main/boards/atoms3-echo-base/atoms3_echo_base.cc @@ -229,7 +229,7 @@ public: } virtual Backlight* GetBacklight() override { - static PwmBacklight backlight(DISPLAY_BACKLIGHT_PIN, DISPLAY_BACKLIGHT_OUTPUT_INVERT); + static PwmBacklight backlight(DISPLAY_BACKLIGHT_PIN, DISPLAY_BACKLIGHT_OUTPUT_INVERT, 256); return &backlight; } }; diff --git a/main/boards/common/backlight.cc b/main/boards/common/backlight.cc index 0d680efe..c62fd7ac 100644 --- a/main/boards/common/backlight.cc +++ b/main/boards/common/backlight.cc @@ -81,12 +81,12 @@ void Backlight::OnTransitionTimer() { } } -PwmBacklight::PwmBacklight(gpio_num_t pin, bool output_invert) : Backlight() { +PwmBacklight::PwmBacklight(gpio_num_t pin, bool output_invert, uint32_t freq_hz) : Backlight() { const ledc_timer_config_t backlight_timer = { .speed_mode = LEDC_LOW_SPEED_MODE, .duty_resolution = LEDC_TIMER_10_BIT, .timer_num = LEDC_TIMER_0, - .freq_hz = 25000, //背光pwm频率需要高一点,防止电感啸叫 + .freq_hz = freq_hz, //背光pwm频率需要高一点,防止电感啸叫 .clk_cfg = LEDC_AUTO_CLK, .deconfigure = false }; diff --git a/main/boards/common/backlight.h b/main/boards/common/backlight.h index 4fd2ceca..5c09b3d2 100644 --- a/main/boards/common/backlight.h +++ b/main/boards/common/backlight.h @@ -29,7 +29,7 @@ protected: class PwmBacklight : public Backlight { public: - PwmBacklight(gpio_num_t pin, bool output_invert = false); + PwmBacklight(gpio_num_t pin, bool output_invert = false, uint32_t freq_hz = 25000); ~PwmBacklight(); void SetBrightnessImpl(uint8_t brightness) override;