mirror of
https://github.com/espressif/esp-idf.git
synced 2025-10-02 18:10:57 +02:00
fix(ledc): update LEDC test file to cpp style
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
set(srcs "test_app_main.c"
|
set(srcs "test_app_main.c"
|
||||||
"test_ledc.c"
|
"test_ledc.cpp"
|
||||||
"test_ledc_utils.c")
|
"test_ledc_utils.cpp")
|
||||||
|
|
||||||
if(CONFIG_SOC_LIGHT_SLEEP_SUPPORTED)
|
if(CONFIG_SOC_LIGHT_SLEEP_SUPPORTED)
|
||||||
list(APPEND srcs "test_ledc_sleep.c")
|
list(APPEND srcs "test_ledc_sleep.cpp")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# In order for the cases defined by `TEST_CASE` to be linked into the final elf,
|
# In order for the cases defined by `TEST_CASE` to be linked into the final elf,
|
||||||
|
@@ -407,13 +407,13 @@ TEST_CASE("LEDC multi fade test", "[ledc]")
|
|||||||
|
|
||||||
// Construct fade parameters
|
// Construct fade parameters
|
||||||
const ledc_fade_param_config_t fade_params[] = {
|
const ledc_fade_param_config_t fade_params[] = {
|
||||||
{.dir = 1, .step_num = 100, .cycle_num = 1, .scale = 1},
|
{.dir = 1, .cycle_num = 1, .scale = 1, .step_num = 100},
|
||||||
{.dir = 1, .step_num = 50, .cycle_num = 2, .scale = 2},
|
{.dir = 1, .cycle_num = 2, .scale = 2, .step_num = 50},
|
||||||
{.dir = 1, .step_num = 200, .cycle_num = 10, .scale = 5},
|
{.dir = 1, .cycle_num = 10, .scale = 5, .step_num = 200},
|
||||||
{.dir = 0, .step_num = 100, .cycle_num = 5, .scale = 5},
|
{.dir = 0, .cycle_num = 5, .scale = 5, .step_num = 100},
|
||||||
{.dir = 1, .step_num = 1000, .cycle_num = 1, .scale = 1},
|
{.dir = 1, .cycle_num = 1, .scale = 1, .step_num = 1000},
|
||||||
{.dir = 0, .step_num = 200, .cycle_num = 1, .scale = 1},
|
{.dir = 0, .cycle_num = 1, .scale = 1, .step_num = 200},
|
||||||
{.dir = 1, .step_num = 1, .cycle_num = 1000, .scale = 1000},
|
{.dir = 1, .cycle_num = 1000, .scale = 1000, .step_num = 1},
|
||||||
};
|
};
|
||||||
uint32_t fade_range = 7;
|
uint32_t fade_range = 7;
|
||||||
int32_t start_duty = 2000;
|
int32_t start_duty = 2000;
|
||||||
@@ -455,13 +455,12 @@ static void frequency_set_get(ledc_mode_t speed_mode, ledc_timer_t timer, uint32
|
|||||||
|
|
||||||
static void timer_frequency_test(ledc_channel_t channel, ledc_timer_bit_t timer_bit, ledc_timer_t timer, ledc_mode_t speed_mode)
|
static void timer_frequency_test(ledc_channel_t channel, ledc_timer_bit_t timer_bit, ledc_timer_t timer, ledc_mode_t speed_mode)
|
||||||
{
|
{
|
||||||
ledc_timer_config_t ledc_time_config = {
|
ledc_timer_config_t ledc_time_config = {};
|
||||||
.speed_mode = speed_mode,
|
ledc_time_config.speed_mode = speed_mode;
|
||||||
.duty_resolution = timer_bit,
|
ledc_time_config.duty_resolution = timer_bit;
|
||||||
.timer_num = timer,
|
ledc_time_config.timer_num = timer;
|
||||||
.freq_hz = TEST_PWM_FREQ,
|
ledc_time_config.freq_hz = TEST_PWM_FREQ;
|
||||||
.clk_cfg = TEST_DEFAULT_CLK_CFG,
|
ledc_time_config.clk_cfg = TEST_DEFAULT_CLK_CFG;
|
||||||
};
|
|
||||||
TEST_ESP_OK(ledc_timer_config(&ledc_time_config));
|
TEST_ESP_OK(ledc_timer_config(&ledc_time_config));
|
||||||
TEST_ESP_OK(ledc_bind_channel_timer(speed_mode, channel, timer));
|
TEST_ESP_OK(ledc_bind_channel_timer(speed_mode, channel, timer));
|
||||||
|
|
||||||
@@ -516,16 +515,15 @@ TEST_CASE("LEDC set and get frequency", "[ledc][timeout=60]")
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if SOC_CLK_TREE_SUPPORTED
|
#if SOC_CLK_TREE_SUPPORTED
|
||||||
static void timer_set_clk_src_and_freq_test(ledc_mode_t speed_mode, ledc_clk_cfg_t clk_src, uint32_t duty_res,
|
static void timer_set_clk_src_and_freq_test(ledc_mode_t speed_mode, ledc_clk_cfg_t clk_src, ledc_timer_bit_t duty_res,
|
||||||
uint32_t freq_hz)
|
uint32_t freq_hz)
|
||||||
{
|
{
|
||||||
ledc_timer_config_t ledc_time_config = {
|
ledc_timer_config_t ledc_time_config = {};
|
||||||
.speed_mode = speed_mode,
|
ledc_time_config.speed_mode = speed_mode;
|
||||||
.duty_resolution = duty_res,
|
ledc_time_config.duty_resolution = duty_res;
|
||||||
.timer_num = LEDC_TIMER_0,
|
ledc_time_config.timer_num = LEDC_TIMER_0;
|
||||||
.freq_hz = freq_hz,
|
ledc_time_config.freq_hz = freq_hz;
|
||||||
.clk_cfg = clk_src,
|
ledc_time_config.clk_cfg = clk_src;
|
||||||
};
|
|
||||||
TEST_ESP_OK(ledc_timer_config(&ledc_time_config));
|
TEST_ESP_OK(ledc_timer_config(&ledc_time_config));
|
||||||
TEST_ESP_OK(ledc_update_duty(speed_mode, LEDC_CHANNEL_0)); // Start
|
TEST_ESP_OK(ledc_update_duty(speed_mode, LEDC_CHANNEL_0)); // Start
|
||||||
vTaskDelay(100 / portTICK_PERIOD_MS);
|
vTaskDelay(100 / portTICK_PERIOD_MS);
|
||||||
@@ -542,38 +540,36 @@ static void timer_set_clk_src_and_freq_test(ledc_mode_t speed_mode, ledc_clk_cfg
|
|||||||
TEST_CASE("LEDC timer select specific clock source", "[ledc]")
|
TEST_CASE("LEDC timer select specific clock source", "[ledc]")
|
||||||
{
|
{
|
||||||
const ledc_mode_t test_speed_mode = TEST_SPEED_MODE;
|
const ledc_mode_t test_speed_mode = TEST_SPEED_MODE;
|
||||||
ledc_channel_config_t ledc_ch_config = {
|
ledc_channel_config_t ledc_ch_config = {};
|
||||||
.gpio_num = PULSE_IO,
|
ledc_ch_config.gpio_num = PULSE_IO;
|
||||||
.speed_mode = test_speed_mode,
|
ledc_ch_config.speed_mode = test_speed_mode;
|
||||||
.channel = LEDC_CHANNEL_0,
|
ledc_ch_config.channel = LEDC_CHANNEL_0;
|
||||||
.intr_type = LEDC_INTR_DISABLE,
|
ledc_ch_config.timer_sel = LEDC_TIMER_0;
|
||||||
.timer_sel = LEDC_TIMER_0,
|
ledc_ch_config.duty = 800;
|
||||||
.duty = 800,
|
ledc_ch_config.hpoint = 0;
|
||||||
.hpoint = 0,
|
|
||||||
};
|
|
||||||
TEST_ESP_OK(ledc_channel_config(&ledc_ch_config));
|
TEST_ESP_OK(ledc_channel_config(&ledc_ch_config));
|
||||||
|
|
||||||
if (test_speed_mode == LEDC_LOW_SPEED_MODE) {
|
if (test_speed_mode == LEDC_LOW_SPEED_MODE) {
|
||||||
#if SOC_CLK_RC_FAST_SUPPORT_CALIBRATION // Otherwise, the frequency of output PWM signal may not be very accurate
|
#if SOC_CLK_RC_FAST_SUPPORT_CALIBRATION // Otherwise, the frequency of output PWM signal may not be very accurate
|
||||||
printf("Check LEDC_USE_RC_FAST_CLK for a 100Hz signal\n");
|
printf("Check LEDC_USE_RC_FAST_CLK for a 100Hz signal\n");
|
||||||
timer_set_clk_src_and_freq_test(test_speed_mode, LEDC_USE_RC_FAST_CLK, 10, 100);
|
timer_set_clk_src_and_freq_test(test_speed_mode, LEDC_USE_RC_FAST_CLK, LEDC_TIMER_10_BIT, 100);
|
||||||
#endif
|
#endif
|
||||||
#if SOC_LEDC_SUPPORT_XTAL_CLOCK
|
#if SOC_LEDC_SUPPORT_XTAL_CLOCK
|
||||||
printf("Check LEDC_USE_XTAL_CLK for a 400Hz signal\n");
|
printf("Check LEDC_USE_XTAL_CLK for a 400Hz signal\n");
|
||||||
timer_set_clk_src_and_freq_test(test_speed_mode, LEDC_USE_XTAL_CLK, 13, 400);
|
timer_set_clk_src_and_freq_test(test_speed_mode, LEDC_USE_XTAL_CLK, LEDC_TIMER_13_BIT, 400);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#if SOC_LEDC_SUPPORT_REF_TICK
|
#if SOC_LEDC_SUPPORT_REF_TICK
|
||||||
printf("Check LEDC_USE_REF_TICK for a 250Hz signal\n");
|
printf("Check LEDC_USE_REF_TICK for a 250Hz signal\n");
|
||||||
timer_set_clk_src_and_freq_test(test_speed_mode, LEDC_USE_REF_TICK, 10, 250);
|
timer_set_clk_src_and_freq_test(test_speed_mode, LEDC_USE_REF_TICK, LEDC_TIMER_10_BIT, 250);
|
||||||
#endif
|
#endif
|
||||||
#if SOC_LEDC_SUPPORT_APB_CLOCK
|
#if SOC_LEDC_SUPPORT_APB_CLOCK
|
||||||
printf("Check LEDC_USE_APB_CLK for a 500Hz signal\n");
|
printf("Check LEDC_USE_APB_CLK for a 500Hz signal\n");
|
||||||
timer_set_clk_src_and_freq_test(test_speed_mode, LEDC_USE_APB_CLK, 13, 500);
|
timer_set_clk_src_and_freq_test(test_speed_mode, LEDC_USE_APB_CLK, LEDC_TIMER_13_BIT, 500);
|
||||||
#endif
|
#endif
|
||||||
#if SOC_LEDC_SUPPORT_PLL_DIV_CLOCK
|
#if SOC_LEDC_SUPPORT_PLL_DIV_CLOCK
|
||||||
printf("Check LEDC_USE_PLL_DIV_CLK for a 500Hz signal\n");
|
printf("Check LEDC_USE_PLL_DIV_CLK for a 500Hz signal\n");
|
||||||
timer_set_clk_src_and_freq_test(test_speed_mode, LEDC_USE_PLL_DIV_CLK, 13, 500);
|
timer_set_clk_src_and_freq_test(test_speed_mode, LEDC_USE_PLL_DIV_CLK, LEDC_TIMER_13_BIT, 500);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
printf("Bind channel 0 to timer 0\n");
|
printf("Bind channel 0 to timer 0\n");
|
||||||
@@ -591,24 +587,21 @@ TEST_CASE("LEDC timer pause and resume", "[ledc]")
|
|||||||
const ledc_mode_t test_speed_mode = TEST_SPEED_MODE;
|
const ledc_mode_t test_speed_mode = TEST_SPEED_MODE;
|
||||||
int count;
|
int count;
|
||||||
|
|
||||||
ledc_timer_config_t ledc_time_config = {
|
ledc_timer_config_t ledc_time_config = {};
|
||||||
.speed_mode = test_speed_mode,
|
ledc_time_config.speed_mode = test_speed_mode;
|
||||||
.duty_resolution = LEDC_TIMER_13_BIT,
|
ledc_time_config.duty_resolution = LEDC_TIMER_13_BIT;
|
||||||
.timer_num = LEDC_TIMER_0,
|
ledc_time_config.timer_num = LEDC_TIMER_0;
|
||||||
.freq_hz = TEST_PWM_FREQ,
|
ledc_time_config.freq_hz = TEST_PWM_FREQ;
|
||||||
.clk_cfg = TEST_DEFAULT_CLK_CFG,
|
ledc_time_config.clk_cfg = TEST_DEFAULT_CLK_CFG;
|
||||||
};
|
|
||||||
TEST_ESP_OK(ledc_timer_config(&ledc_time_config));
|
TEST_ESP_OK(ledc_timer_config(&ledc_time_config));
|
||||||
|
|
||||||
ledc_channel_config_t ledc_ch_config = {
|
ledc_channel_config_t ledc_ch_config = {};
|
||||||
.gpio_num = PULSE_IO,
|
ledc_ch_config.gpio_num = PULSE_IO;
|
||||||
.speed_mode = test_speed_mode,
|
ledc_ch_config.speed_mode = test_speed_mode;
|
||||||
.channel = LEDC_CHANNEL_0,
|
ledc_ch_config.channel = LEDC_CHANNEL_0;
|
||||||
.intr_type = LEDC_INTR_DISABLE,
|
ledc_ch_config.timer_sel = LEDC_TIMER_0;
|
||||||
.timer_sel = LEDC_TIMER_0,
|
ledc_ch_config.duty = 4000;
|
||||||
.duty = 4000,
|
ledc_ch_config.hpoint = 0;
|
||||||
.hpoint = 0,
|
|
||||||
};
|
|
||||||
TEST_ESP_OK(ledc_channel_config(&ledc_ch_config));
|
TEST_ESP_OK(ledc_channel_config(&ledc_ch_config));
|
||||||
|
|
||||||
vTaskDelay(10 / portTICK_PERIOD_MS);
|
vTaskDelay(10 / portTICK_PERIOD_MS);
|
@@ -92,7 +92,7 @@ TEST_CASE("ledc can output after light sleep (LEDC power domain pd)", "[ledc]")
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static const ledc_clk_src_t test_ledc_clk_in_slp[] = {
|
static const ledc_clk_cfg_t test_ledc_clk_in_slp[] = {
|
||||||
LEDC_USE_RC_FAST_CLK,
|
LEDC_USE_RC_FAST_CLK,
|
||||||
#if SOC_LEDC_SUPPORT_XTAL_CLOCK
|
#if SOC_LEDC_SUPPORT_XTAL_CLOCK
|
||||||
LEDC_USE_XTAL_CLK,
|
LEDC_USE_XTAL_CLK,
|
||||||
@@ -107,7 +107,7 @@ static void ledc_output_monitor(void)
|
|||||||
unity_wait_for_signal("Go to light sleep for 3 seconds");
|
unity_wait_for_signal("Go to light sleep for 3 seconds");
|
||||||
vTaskDelay(500 / portTICK_PERIOD_MS);
|
vTaskDelay(500 / portTICK_PERIOD_MS);
|
||||||
int pulse_count = wave_count(200);
|
int pulse_count = wave_count(200);
|
||||||
uint32_t acceptable_delta = (test_ledc_clk_in_slp[i] == (ledc_clk_src_t)LEDC_USE_RC_FAST_CLK) ? 20 : 5; // RC_FAST as the clk src has a bigger error range is reasonable
|
uint32_t acceptable_delta = (test_ledc_clk_in_slp[i] == LEDC_USE_RC_FAST_CLK) ? 20 : 5; // RC_FAST as the clk src has a bigger error range is reasonable
|
||||||
TEST_ASSERT_UINT32_WITHIN(acceptable_delta, TEST_PWM_LOW_FREQ * 200 / 1000, pulse_count);
|
TEST_ASSERT_UINT32_WITHIN(acceptable_delta, TEST_PWM_LOW_FREQ * 200 / 1000, pulse_count);
|
||||||
unity_wait_for_signal("Waked up!");
|
unity_wait_for_signal("Waked up!");
|
||||||
}
|
}
|
@@ -13,8 +13,7 @@
|
|||||||
|
|
||||||
ledc_channel_config_t initialize_channel_config(void)
|
ledc_channel_config_t initialize_channel_config(void)
|
||||||
{
|
{
|
||||||
ledc_channel_config_t config;
|
ledc_channel_config_t config = {};
|
||||||
memset(&config, 0, sizeof(ledc_channel_config_t));
|
|
||||||
config.gpio_num = PULSE_IO;
|
config.gpio_num = PULSE_IO;
|
||||||
config.speed_mode = TEST_SPEED_MODE;
|
config.speed_mode = TEST_SPEED_MODE;
|
||||||
config.channel = LEDC_CHANNEL_0;
|
config.channel = LEDC_CHANNEL_0;
|
||||||
@@ -26,8 +25,7 @@ ledc_channel_config_t initialize_channel_config(void)
|
|||||||
|
|
||||||
ledc_timer_config_t create_default_timer_config(void)
|
ledc_timer_config_t create_default_timer_config(void)
|
||||||
{
|
{
|
||||||
ledc_timer_config_t ledc_time_config;
|
ledc_timer_config_t ledc_time_config = {};
|
||||||
memset(&ledc_time_config, 0, sizeof(ledc_timer_config_t));
|
|
||||||
ledc_time_config.speed_mode = TEST_SPEED_MODE;
|
ledc_time_config.speed_mode = TEST_SPEED_MODE;
|
||||||
ledc_time_config.duty_resolution = LEDC_TIMER_13_BIT;
|
ledc_time_config.duty_resolution = LEDC_TIMER_13_BIT;
|
||||||
ledc_time_config.timer_num = LEDC_TIMER_0;
|
ledc_time_config.timer_num = LEDC_TIMER_0;
|
@@ -6,8 +6,9 @@
|
|||||||
|
|
||||||
#include "soc/soc_caps.h"
|
#include "soc/soc_caps.h"
|
||||||
#include "driver/ledc.h"
|
#include "driver/ledc.h"
|
||||||
|
#include "soc/gpio_num.h"
|
||||||
|
|
||||||
#define PULSE_IO 2
|
#define PULSE_IO GPIO_NUM_2
|
||||||
|
|
||||||
#define TEST_PWM_FREQ 2000
|
#define TEST_PWM_FREQ 2000
|
||||||
#define TEST_PWM_LOW_FREQ 200
|
#define TEST_PWM_LOW_FREQ 200
|
||||||
|
Reference in New Issue
Block a user