Skip to content

Commit 2ad251b

Browse files
committed
Merge branch 'bugfix/ledc_get_freq_calc_v5.4' into 'release/v5.4'
fix(ledc): fix ledc_get_freq calculation err due to overflow (v5.4) See merge request espressif/esp-idf!36005
2 parents b8820cf + 31d7a20 commit 2ad251b

File tree

3 files changed

+5
-5
lines changed
  • components/esp_driver_ledc/src
  • docs

3 files changed

+5
-5
lines changed

components/esp_driver_ledc/src/ledc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1116,7 +1116,7 @@ uint32_t ledc_get_freq(ledc_mode_t speed_mode, ledc_timer_t timer_num)
11161116
ledc_hal_get_clock_divider(&(p_ledc_obj[speed_mode]->ledc_hal), timer_num, &clock_divider);
11171117
ledc_hal_get_duty_resolution(&(p_ledc_obj[speed_mode]->ledc_hal), timer_num, &duty_resolution);
11181118
ledc_hal_get_clk_cfg(&(p_ledc_obj[speed_mode]->ledc_hal), timer_num, &clk_cfg);
1119-
uint32_t precision = (0x1 << duty_resolution);
1119+
uint64_t precision = (0x1 << duty_resolution);
11201120
uint32_t src_clk_freq = 0;
11211121
esp_clk_tree_src_get_freq_hz((soc_module_clk_t)clk_cfg, LEDC_CLK_SRC_FREQ_PRECISION, &src_clk_freq);
11221122
portEXIT_CRITICAL(&ledc_spinlock);

docs/en/api-reference/peripherals/ledc.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -319,14 +319,14 @@ The LEDC API provides several ways to change the PWM frequency "on the fly":
319319
More Control Over PWM
320320
"""""""""""""""""""""
321321

322-
There are several lower level timer-specific functions that can be used to change PWM settings:
322+
There are several individual timer-specific functions that can be used to change PWM output:
323323

324324
* :cpp:func:`ledc_timer_set`
325325
* :cpp:func:`ledc_timer_rst`
326326
* :cpp:func:`ledc_timer_pause`
327327
* :cpp:func:`ledc_timer_resume`
328328

329-
The first two functions are called "behind the scenes" by :cpp:func:`ledc_channel_config` to provide a startup of a timer after it is configured.
329+
The first two functions are called "behind the scenes" by :cpp:func:`ledc_timer_config` to provide a startup of a timer after it is configured.
330330

331331

332332
Use Interrupts

docs/zh_CN/api-reference/peripherals/ledc.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -319,14 +319,14 @@ LED PWM 控制器 API 有多种方式即时改变 PWM 频率:
319319
控制 PWM 的更多方式
320320
"""""""""""""""""""""
321321

322-
有一些较底层的定时器特定函数可用于更改 PWM 设置
322+
有一些较独立的定时器特定函数可用于更改 PWM 输出
323323

324324
* :cpp:func:`ledc_timer_set`
325325
* :cpp:func:`ledc_timer_rst`
326326
* :cpp:func:`ledc_timer_pause`
327327
* :cpp:func:`ledc_timer_resume`
328328

329-
前两个功能可通过函数 :cpp:func:`ledc_channel_config` 在后台运行,在定时器配置后启动。
329+
前两个功能可通过函数 :cpp:func:`ledc_timer_config` 在后台运行,在定时器配置后启动。
330330

331331

332332
使用中断

0 commit comments

Comments
 (0)