diff --git a/components/esp_driver_ledc/test_apps/ledc/main/CMakeLists.txt b/components/esp_driver_ledc/test_apps/ledc/main/CMakeLists.txt index 42ff0f2307..b68eb188e2 100644 --- a/components/esp_driver_ledc/test_apps/ledc/main/CMakeLists.txt +++ b/components/esp_driver_ledc/test_apps/ledc/main/CMakeLists.txt @@ -1,9 +1,9 @@ set(srcs "test_app_main.c" - "test_ledc.c" - "test_ledc_utils.c") + "test_ledc.cpp" + "test_ledc_utils.cpp") if(CONFIG_SOC_LIGHT_SLEEP_SUPPORTED) - list(APPEND srcs "test_ledc_sleep.c") + list(APPEND srcs "test_ledc_sleep.cpp") endif() # In order for the cases defined by `TEST_CASE` to be linked into the final elf, diff --git a/components/esp_driver_ledc/test_apps/ledc/main/test_ledc.c b/components/esp_driver_ledc/test_apps/ledc/main/test_ledc.cpp similarity index 92% rename from components/esp_driver_ledc/test_apps/ledc/main/test_ledc.c rename to components/esp_driver_ledc/test_apps/ledc/main/test_ledc.cpp index f869363efe..f101238c9e 100644 --- a/components/esp_driver_ledc/test_apps/ledc/main/test_ledc.c +++ b/components/esp_driver_ledc/test_apps/ledc/main/test_ledc.cpp @@ -407,13 +407,13 @@ TEST_CASE("LEDC multi fade test", "[ledc]") // Construct fade parameters const ledc_fade_param_config_t fade_params[] = { - {.dir = 1, .step_num = 100, .cycle_num = 1, .scale = 1}, - {.dir = 1, .step_num = 50, .cycle_num = 2, .scale = 2}, - {.dir = 1, .step_num = 200, .cycle_num = 10, .scale = 5}, - {.dir = 0, .step_num = 100, .cycle_num = 5, .scale = 5}, - {.dir = 1, .step_num = 1000, .cycle_num = 1, .scale = 1}, - {.dir = 0, .step_num = 200, .cycle_num = 1, .scale = 1}, - {.dir = 1, .step_num = 1, .cycle_num = 1000, .scale = 1000}, + {.dir = 1, .cycle_num = 1, .scale = 1, .step_num = 100}, + {.dir = 1, .cycle_num = 2, .scale = 2, .step_num = 50}, + {.dir = 1, .cycle_num = 10, .scale = 5, .step_num = 200}, + {.dir = 0, .cycle_num = 5, .scale = 5, .step_num = 100}, + {.dir = 1, .cycle_num = 1, .scale = 1, .step_num = 1000}, + {.dir = 0, .cycle_num = 1, .scale = 1, .step_num = 200}, + {.dir = 1, .cycle_num = 1000, .scale = 1000, .step_num = 1}, }; uint32_t fade_range = 7; 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) { - ledc_timer_config_t ledc_time_config = { - .speed_mode = speed_mode, - .duty_resolution = timer_bit, - .timer_num = timer, - .freq_hz = TEST_PWM_FREQ, - .clk_cfg = TEST_DEFAULT_CLK_CFG, - }; + ledc_timer_config_t ledc_time_config = {}; + ledc_time_config.speed_mode = speed_mode; + ledc_time_config.duty_resolution = timer_bit; + ledc_time_config.timer_num = timer; + ledc_time_config.freq_hz = TEST_PWM_FREQ; + ledc_time_config.clk_cfg = TEST_DEFAULT_CLK_CFG; TEST_ESP_OK(ledc_timer_config(&ledc_time_config)); 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 -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) { - ledc_timer_config_t ledc_time_config = { - .speed_mode = speed_mode, - .duty_resolution = duty_res, - .timer_num = LEDC_TIMER_0, - .freq_hz = freq_hz, - .clk_cfg = clk_src, - }; + ledc_timer_config_t ledc_time_config = {}; + ledc_time_config.speed_mode = speed_mode; + ledc_time_config.duty_resolution = duty_res; + ledc_time_config.timer_num = LEDC_TIMER_0; + ledc_time_config.freq_hz = freq_hz; + ledc_time_config.clk_cfg = clk_src; TEST_ESP_OK(ledc_timer_config(&ledc_time_config)); TEST_ESP_OK(ledc_update_duty(speed_mode, LEDC_CHANNEL_0)); // Start 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]") { const ledc_mode_t test_speed_mode = TEST_SPEED_MODE; - ledc_channel_config_t ledc_ch_config = { - .gpio_num = PULSE_IO, - .speed_mode = test_speed_mode, - .channel = LEDC_CHANNEL_0, - .intr_type = LEDC_INTR_DISABLE, - .timer_sel = LEDC_TIMER_0, - .duty = 800, - .hpoint = 0, - }; + ledc_channel_config_t ledc_ch_config = {}; + ledc_ch_config.gpio_num = PULSE_IO; + ledc_ch_config.speed_mode = test_speed_mode; + ledc_ch_config.channel = LEDC_CHANNEL_0; + ledc_ch_config.timer_sel = LEDC_TIMER_0; + ledc_ch_config.duty = 800; + ledc_ch_config.hpoint = 0; TEST_ESP_OK(ledc_channel_config(&ledc_ch_config)); 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 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 #if SOC_LEDC_SUPPORT_XTAL_CLOCK 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 } #if SOC_LEDC_SUPPORT_REF_TICK 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 #if SOC_LEDC_SUPPORT_APB_CLOCK 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 #if SOC_LEDC_SUPPORT_PLL_DIV_CLOCK 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 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; int count; - ledc_timer_config_t ledc_time_config = { - .speed_mode = test_speed_mode, - .duty_resolution = LEDC_TIMER_13_BIT, - .timer_num = LEDC_TIMER_0, - .freq_hz = TEST_PWM_FREQ, - .clk_cfg = TEST_DEFAULT_CLK_CFG, - }; + ledc_timer_config_t ledc_time_config = {}; + ledc_time_config.speed_mode = test_speed_mode; + ledc_time_config.duty_resolution = LEDC_TIMER_13_BIT; + ledc_time_config.timer_num = LEDC_TIMER_0; + ledc_time_config.freq_hz = TEST_PWM_FREQ; + ledc_time_config.clk_cfg = TEST_DEFAULT_CLK_CFG; TEST_ESP_OK(ledc_timer_config(&ledc_time_config)); - ledc_channel_config_t ledc_ch_config = { - .gpio_num = PULSE_IO, - .speed_mode = test_speed_mode, - .channel = LEDC_CHANNEL_0, - .intr_type = LEDC_INTR_DISABLE, - .timer_sel = LEDC_TIMER_0, - .duty = 4000, - .hpoint = 0, - }; + ledc_channel_config_t ledc_ch_config = {}; + ledc_ch_config.gpio_num = PULSE_IO; + ledc_ch_config.speed_mode = test_speed_mode; + ledc_ch_config.channel = LEDC_CHANNEL_0; + ledc_ch_config.timer_sel = LEDC_TIMER_0; + ledc_ch_config.duty = 4000; + ledc_ch_config.hpoint = 0; TEST_ESP_OK(ledc_channel_config(&ledc_ch_config)); vTaskDelay(10 / portTICK_PERIOD_MS); diff --git a/components/esp_driver_ledc/test_apps/ledc/main/test_ledc_sleep.c b/components/esp_driver_ledc/test_apps/ledc/main/test_ledc_sleep.cpp similarity index 96% rename from components/esp_driver_ledc/test_apps/ledc/main/test_ledc_sleep.c rename to components/esp_driver_ledc/test_apps/ledc/main/test_ledc_sleep.cpp index bcd98eb398..0ed3f50927 100644 --- a/components/esp_driver_ledc/test_apps/ledc/main/test_ledc_sleep.c +++ b/components/esp_driver_ledc/test_apps/ledc/main/test_ledc_sleep.cpp @@ -92,7 +92,7 @@ TEST_CASE("ledc can output after light sleep (LEDC power domain pd)", "[ledc]") } #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, #if SOC_LEDC_SUPPORT_XTAL_CLOCK 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"); vTaskDelay(500 / portTICK_PERIOD_MS); 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); unity_wait_for_signal("Waked up!"); } diff --git a/components/esp_driver_ledc/test_apps/ledc/main/test_ledc_utils.c b/components/esp_driver_ledc/test_apps/ledc/main/test_ledc_utils.cpp similarity index 87% rename from components/esp_driver_ledc/test_apps/ledc/main/test_ledc_utils.c rename to components/esp_driver_ledc/test_apps/ledc/main/test_ledc_utils.cpp index 8dece59874..b0478bc706 100644 --- a/components/esp_driver_ledc/test_apps/ledc/main/test_ledc_utils.c +++ b/components/esp_driver_ledc/test_apps/ledc/main/test_ledc_utils.cpp @@ -13,8 +13,7 @@ ledc_channel_config_t initialize_channel_config(void) { - ledc_channel_config_t config; - memset(&config, 0, sizeof(ledc_channel_config_t)); + ledc_channel_config_t config = {}; config.gpio_num = PULSE_IO; config.speed_mode = TEST_SPEED_MODE; 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 ledc_time_config; - memset(&ledc_time_config, 0, sizeof(ledc_timer_config_t)); + ledc_timer_config_t ledc_time_config = {}; ledc_time_config.speed_mode = TEST_SPEED_MODE; ledc_time_config.duty_resolution = LEDC_TIMER_13_BIT; ledc_time_config.timer_num = LEDC_TIMER_0; diff --git a/components/esp_driver_ledc/test_apps/ledc/main/test_ledc_utils.h b/components/esp_driver_ledc/test_apps/ledc/main/test_ledc_utils.h index a5a8316127..dfe08929a6 100644 --- a/components/esp_driver_ledc/test_apps/ledc/main/test_ledc_utils.h +++ b/components/esp_driver_ledc/test_apps/ledc/main/test_ledc_utils.h @@ -6,8 +6,9 @@ #include "soc/soc_caps.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_LOW_FREQ 200