@@ -126,17 +126,31 @@ 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 ;
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
+
130
137
if (ledc_timer_config (& ledc_timer ) != ESP_OK ) {
131
138
log_e ("ledc setup failed!" );
132
139
return false;
133
140
}
134
141
135
142
uint32_t duty = ledc_get_duty (group , (channel % 8 ));
136
143
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
+
140
154
ledc_channel_config (& ledc_channel );
141
155
}
142
156
@@ -256,7 +270,13 @@ uint32_t ledcWriteTone(uint8_t pin, uint32_t freq) {
256
270
257
271
uint8_t group = (bus -> channel / 8 ), timer = ((bus -> channel / 2 ) % 4 );
258
272
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 ;
260
280
261
281
if (ledc_timer_config (& ledc_timer ) != ESP_OK ) {
262
282
log_e ("ledcWriteTone configuration failed!" );
@@ -307,7 +327,13 @@ uint32_t ledcChangeFrequency(uint8_t pin, uint32_t freq, uint8_t resolution) {
307
327
}
308
328
uint8_t group = (bus -> channel / 8 ), timer = ((bus -> channel / 2 ) % 4 );
309
329
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 ;
311
337
312
338
if (ledc_timer_config (& ledc_timer ) != ESP_OK ) {
313
339
log_e ("ledcChangeFrequency failed!" );
0 commit comments