diff --git a/zh_ac_dimmer.c b/zh_ac_dimmer.c index 1b06e96..df4a5c2 100755 --- a/zh_ac_dimmer.c +++ b/zh_ac_dimmer.c @@ -197,7 +197,8 @@ static void IRAM_ATTR _zh_ac_dimmer_isr_handler(void *arg) return; } uint64_t _current_us = esp_timer_get_time(); - if (_current_us - _prev_us <= 1000) + if (_current_us - _prev_us <= (1000000 / (_init_config.ac_frequency * 2)) * 0.9) + // if (_current_us - _prev_us <= 1000) { // _prev_us = _current_us; return; @@ -215,8 +216,8 @@ static void IRAM_ATTR _zh_ac_dimmer_isr_handler(void *arg) gpio_set_level(_init_config.triac_gpio, 1); return; } - // _alarm_config.alarm_count = (uint64_t)(((_current_period_us / 110) * (100 - _dimmer_value)) + _zero_cross_us); - _alarm_config.alarm_count = (uint64_t)((1000000 / (_init_config.ac_frequency * 200)) * (100 - _dimmer_value)); + // _alarm_config.alarm_count = (uint64_t)((((1250 - 360) / 100) * (100 - _dimmer_value))); + _alarm_config.alarm_count = (uint64_t)(((1000000 / (_init_config.ac_frequency * 200)) * (100 - _dimmer_value))); // _alarm_config.alarm_count = (uint64_t)((_current_period_us / 100) * (100 - _dimmer_value)); _alarm_config.flags.auto_reload_on_alarm = false; gptimer_set_alarm_action(_dimmer_timer, &_alarm_config);