@@ -475,12 +475,28 @@ esp_err_t pwm_audio_init(const pwm_audio_config_t *cfg)
475475 /**
476476 * Get the address of LEDC register to reduce the addressing time
477477 */
478- g_ledc_left_duty_val = & LEDC .channel_group [handle -> ledc_timer .speed_mode ].channel [handle -> ledc_channel [CHANNEL_LEFT_INDEX ].channel ].duty .val ;
479- g_ledc_left_conf0_val = & LEDC .channel_group [handle -> ledc_timer .speed_mode ].channel [handle -> ledc_channel [CHANNEL_LEFT_INDEX ].channel ].conf0 .val ;
480- g_ledc_left_conf1_val = & LEDC .channel_group [handle -> ledc_timer .speed_mode ].channel [handle -> ledc_channel [CHANNEL_LEFT_INDEX ].channel ].conf1 .val ;
481- g_ledc_right_duty_val = & LEDC .channel_group [handle -> ledc_timer .speed_mode ].channel [handle -> ledc_channel [CHANNEL_RIGHT_INDEX ].channel ].duty .val ;
482- g_ledc_right_conf0_val = & LEDC .channel_group [handle -> ledc_timer .speed_mode ].channel [handle -> ledc_channel [CHANNEL_RIGHT_INDEX ].channel ].conf0 .val ;
483- g_ledc_right_conf1_val = & LEDC .channel_group [handle -> ledc_timer .speed_mode ].channel [handle -> ledc_channel [CHANNEL_RIGHT_INDEX ].channel ].conf1 .val ;
478+ #if defined (CONFIG_IDF_TARGET_ESP32P4 ) || defined (CONFIG_IDF_TARGET_ESP32C5 ) || defined (CONFIG_IDF_TARGET_ESP32C61 )
479+ g_ledc_left_duty_val = & LEDC .channel_group [handle -> ledc_timer .speed_mode ].
480+ channel [handle -> ledc_channel [CHANNEL_LEFT_INDEX ].channel ].duty_init .val ;
481+ #else
482+ g_ledc_left_duty_val = & LEDC .channel_group [handle -> ledc_timer .speed_mode ].
483+ channel [handle -> ledc_channel [CHANNEL_LEFT_INDEX ].channel ].duty .val ;
484+ #endif
485+ g_ledc_left_conf0_val = & LEDC .channel_group [handle -> ledc_timer .speed_mode ].
486+ channel [handle -> ledc_channel [CHANNEL_LEFT_INDEX ].channel ].conf0 .val ;
487+ g_ledc_left_conf1_val = & LEDC .channel_group [handle -> ledc_timer .speed_mode ].
488+ channel [handle -> ledc_channel [CHANNEL_LEFT_INDEX ].channel ].conf1 .val ;
489+ #if defined (CONFIG_IDF_TARGET_ESP32P4 ) || defined (CONFIG_IDF_TARGET_ESP32C5 ) || defined (CONFIG_IDF_TARGET_ESP32C61 )
490+ g_ledc_right_duty_val = & LEDC .channel_group [handle -> ledc_timer .speed_mode ].
491+ channel [handle -> ledc_channel [CHANNEL_RIGHT_INDEX ].channel ].duty_init .val ;
492+ #else
493+ g_ledc_right_duty_val = & LEDC .channel_group [handle -> ledc_timer .speed_mode ].
494+ channel [handle -> ledc_channel [CHANNEL_RIGHT_INDEX ].channel ].duty .val ;
495+ #endif
496+ g_ledc_right_conf0_val = & LEDC .channel_group [handle -> ledc_timer .speed_mode ].
497+ channel [handle -> ledc_channel [CHANNEL_RIGHT_INDEX ].channel ].conf0 .val ;
498+ g_ledc_right_conf1_val = & LEDC .channel_group [handle -> ledc_timer .speed_mode ].
499+ channel [handle -> ledc_channel [CHANNEL_RIGHT_INDEX ].channel ].conf1 .val ;
484500
485501#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL (5 , 0 , 0 )
486502 gptimer_config_t timer_config = {
0 commit comments