Ale przecież ten program poza początkowym zainicjowaniem nic nie robi. Wołasz gdzieś tą funkcję frequencyChange? Może w loop()? A w linijce oznaczonej plusami - wyrażenie inicjujące zmienną musi być stałą obliczoną w czasie kompilacji. Jak chcesz to zmieniać to normalnie podstawieniami.
Kod:
ledc_timer_config_t timerConfig = {
.speed_mode = LEDC_LOW_SPEED_MODE,
.duty_resolution = LEDC_TIMER_10_BIT,
.timer_num = LEDC_TIMER_0,
.clk_cfg = LEDC_AUTO_CLK
};
timerConfig.freq_hz = k;
ledc_timer_config(&timerConfig);