Skip to content

Commit

Permalink
Merge branch 'contrib/github_pr_11810_v5.1' into 'release/v5.1'
Browse files Browse the repository at this point in the history
ledc.c: Fix frequency calculation. (GitHub PR) (v5.1)

See merge request espressif/esp-idf!24696
  • Loading branch information
jack0c committed Jul 12, 2023
2 parents 196fc55 + 1d158dd commit 26046c0
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion components/driver/ledc/ledc.c
Original file line number Diff line number Diff line change
Expand Up @@ -781,7 +781,7 @@ uint32_t ledc_get_freq(ledc_mode_t speed_mode, ledc_timer_t timer_num)
ESP_LOGW(LEDC_TAG, "LEDC timer not configured, call ledc_timer_config to set timer frequency");
return 0;
}
return ((uint64_t) src_clk_freq << 8) / precision / clock_divider;
return (((uint64_t) src_clk_freq << LEDC_LL_FRACTIONAL_BITS) + (uint64_t) precision * clock_divider / 2) / precision / clock_divider;
}

static inline void IRAM_ATTR ledc_calc_fade_end_channel(uint32_t *fade_end_status, uint32_t *channel)
Expand Down
2 changes: 1 addition & 1 deletion components/driver/test_apps/ledc/main/test_ledc.c
Original file line number Diff line number Diff line change
Expand Up @@ -553,7 +553,7 @@ static void timer_frequency_test(ledc_channel_t channel, ledc_timer_bit_t timer_
uint32_t clk_src_freq = 0;
esp_clk_tree_src_get_freq_hz((soc_module_clk_t)TEST_DEFAULT_CLK_CFG, ESP_CLK_TREE_SRC_FREQ_PRECISION_EXACT, &clk_src_freq);
if (clk_src_freq == 80 * 1000 * 1000) {
theoretical_freq = 8992;
theoretical_freq = 8993;
} else if (clk_src_freq == 96 * 1000 * 1000) {
theoretical_freq = 9009;
}
Expand Down

0 comments on commit 26046c0

Please sign in to comment.