@@ -126,17 +126,31 @@ bool ledcAttachChannel(uint8_t pin, uint32_t freq, uint8_t resolution, uint8_t c
126126 return false;
127127 }
128128 } else {
129- ledc_timer_config_t ledc_timer = {.speed_mode = group , .timer_num = timer , .duty_resolution = resolution , .freq_hz = freq , .clk_cfg = clock_source };
129+ ledc_timer_config_t ledc_timer ;
130+ memset ((void * )& ledc_timer , 0 , sizeof (ledc_timer_config_t ));
131+ ledc_timer .speed_mode = group ;
132+ ledc_timer .timer_num = timer ;
133+ ledc_timer .duty_resolution = resolution ;
134+ ledc_timer .freq_hz = freq ;
135+ ledc_timer .clk_cfg = clock_source ;
136+
130137 if (ledc_timer_config (& ledc_timer ) != ESP_OK ) {
131138 log_e ("ledc setup failed!" );
132139 return false;
133140 }
134141
135142 uint32_t duty = ledc_get_duty (group , (channel % 8 ));
136143
137- ledc_channel_config_t ledc_channel = {
138- .speed_mode = group , .channel = (channel % 8 ), .timer_sel = timer , .intr_type = LEDC_INTR_DISABLE , .gpio_num = pin , .duty = duty , .hpoint = 0
139- };
144+ ledc_channel_config_t ledc_channel ;
145+ memset ((void * )& ledc_channel , 0 , sizeof (ledc_channel_config_t ));
146+ ledc_channel .speed_mode = group ;
147+ ledc_channel .channel = (channel % 8 );
148+ ledc_channel .timer_sel = timer ;
149+ ledc_channel .intr_type = LEDC_INTR_DISABLE ;
150+ ledc_channel .gpio_num = pin ;
151+ ledc_channel .duty = duty ;
152+ ledc_channel .hpoint = 0 ;
153+
140154 ledc_channel_config (& ledc_channel );
141155 }
142156
@@ -256,7 +270,13 @@ uint32_t ledcWriteTone(uint8_t pin, uint32_t freq) {
256270
257271 uint8_t group = (bus -> channel / 8 ), timer = ((bus -> channel / 2 ) % 4 );
258272
259- ledc_timer_config_t ledc_timer = {.speed_mode = group , .timer_num = timer , .duty_resolution = 10 , .freq_hz = freq , .clk_cfg = clock_source };
273+ ledc_timer_config_t ledc_timer ;
274+ memset ((void * )& ledc_timer , 0 , sizeof (ledc_timer_config_t ));
275+ ledc_timer .speed_mode = group ;
276+ ledc_timer .timer_num = timer ;
277+ ledc_timer .duty_resolution = 10 ;
278+ ledc_timer .freq_hz = freq ;
279+ ledc_timer .clk_cfg = clock_source ;
260280
261281 if (ledc_timer_config (& ledc_timer ) != ESP_OK ) {
262282 log_e ("ledcWriteTone configuration failed!" );
@@ -307,7 +327,13 @@ uint32_t ledcChangeFrequency(uint8_t pin, uint32_t freq, uint8_t resolution) {
307327 }
308328 uint8_t group = (bus -> channel / 8 ), timer = ((bus -> channel / 2 ) % 4 );
309329
310- ledc_timer_config_t ledc_timer = {.speed_mode = group , .timer_num = timer , .duty_resolution = resolution , .freq_hz = freq , .clk_cfg = clock_source };
330+ ledc_timer_config_t ledc_timer ;
331+ memset ((void * )& ledc_timer , 0 , sizeof (ledc_timer_config_t ));
332+ ledc_timer .speed_mode = group ;
333+ ledc_timer .timer_num = timer ;
334+ ledc_timer .duty_resolution = resolution ;
335+ ledc_timer .freq_hz = freq ;
336+ ledc_timer .clk_cfg = clock_source ;
311337
312338 if (ledc_timer_config (& ledc_timer ) != ESP_OK ) {
313339 log_e ("ledcChangeFrequency failed!" );
0 commit comments