@@ -126,17 +126,24 @@ bool ledcAttachChannel(uint8_t pin, uint32_t freq, uint8_t resolution, uint8_t c
126
126
return false;
127
127
}
128
128
} 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 = {.speed_mode = group , .timer_num = timer , .duty_resolution = resolution , .freq_hz = freq , .clk_cfg = clock_source , . deconfigure = false };
130
130
if (ledc_timer_config (& ledc_timer ) != ESP_OK ) {
131
131
log_e ("ledc setup failed!" );
132
132
return false;
133
133
}
134
134
135
135
uint32_t duty = ledc_get_duty (group , (channel % 8 ));
136
136
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
- };
137
+ ledc_channel_config_t ledc_channel ;
138
+ memset ((void * )& ledc_channel , 0 , sizeof (ledc_channel_config_t ));
139
+ ledc_channel .speed_mode = group ;
140
+ ledc_channel .channel = (channel % 8 );
141
+ ledc_channel .timer_sel = timer ;
142
+ ledc_channel .intr_type = LEDC_INTR_DISABLE ;
143
+ ledc_channel .gpio_num = pin ;
144
+ ledc_channel .duty = duty ;
145
+ ledc_channel .hpoint = 0 ;
146
+
140
147
ledc_channel_config (& ledc_channel );
141
148
}
142
149
@@ -256,7 +263,7 @@ uint32_t ledcWriteTone(uint8_t pin, uint32_t freq) {
256
263
257
264
uint8_t group = (bus -> channel / 8 ), timer = ((bus -> channel / 2 ) % 4 );
258
265
259
- ledc_timer_config_t ledc_timer = {.speed_mode = group , .timer_num = timer , .duty_resolution = 10 , .freq_hz = freq , .clk_cfg = clock_source };
266
+ ledc_timer_config_t ledc_timer = {.speed_mode = group , .timer_num = timer , .duty_resolution = 10 , .freq_hz = freq , .clk_cfg = clock_source , . deconfigure = false };
260
267
261
268
if (ledc_timer_config (& ledc_timer ) != ESP_OK ) {
262
269
log_e ("ledcWriteTone configuration failed!" );
@@ -307,7 +314,7 @@ uint32_t ledcChangeFrequency(uint8_t pin, uint32_t freq, uint8_t resolution) {
307
314
}
308
315
uint8_t group = (bus -> channel / 8 ), timer = ((bus -> channel / 2 ) % 4 );
309
316
310
- ledc_timer_config_t ledc_timer = {.speed_mode = group , .timer_num = timer , .duty_resolution = resolution , .freq_hz = freq , .clk_cfg = clock_source };
317
+ ledc_timer_config_t ledc_timer = {.speed_mode = group , .timer_num = timer , .duty_resolution = resolution , .freq_hz = freq , .clk_cfg = clock_source , . deconfigure = false };
311
318
312
319
if (ledc_timer_config (& ledc_timer ) != ESP_OK ) {
313
320
log_e ("ledcChangeFrequency failed!" );
0 commit comments