diff -r 77cf1e9866e5 -r ac0c31c38959 main/task_driver.c --- a/main/task_driver.c Wed Jul 28 22:04:54 2021 +0200 +++ b/main/task_driver.c Thu Jul 29 19:57:41 2021 +0200 @@ -73,12 +73,12 @@ void MLT(int onoff) { if (onoff && outEnable) { - if (MLT_pin != 1) + if (MLT_pin != 1 && ! equipment.Hendi) MLT_time = xTaskGetTickCount(); gpio_set_level(SSR_MLT, 1); MLT_pin = 1; } else { - if (MLT_pin) + if (MLT_pin && ! equipment.Hendi) runtime.MLT_usage += xTaskGetTickCount() - MLT_time; gpio_set_level(SSR_MLT, 0); MLT_pin = 0; @@ -123,6 +123,7 @@ if (outEnable) { if (percent < 0) { val = 0; + MLT_time = xTaskGetTickCount(); } else if (percent > 100) { val = 1024; } else { @@ -130,6 +131,7 @@ } } else { val = 0; + MLT_time = xTaskGetTickCount(); } /* @@ -142,6 +144,10 @@ log_msg(TAG, "MLT_PWM(%d) val=%d %.0f watt", percent, val, (percent / 100.0) * equipment.MLT_watt); ledc_set_duty(LEDC_HIGH_SPEED_MODE, LEDC_CHANNEL_0,/* 1024 - */val); ledc_update_duty(LEDC_HIGH_SPEED_MODE, LEDC_CHANNEL_0); + if (val >= 10) { + runtime.MLT_usage += (xTaskGetTickCount() - MLT_time) * (percent / 100.0); + } + MLT_time = xTaskGetTickCount(); } oldval = val; }