71 |
71 |
72 |
72 |
73 void MLT(int onoff) { |
73 void MLT(int onoff) { |
74 |
74 |
75 if (onoff && outEnable) { |
75 if (onoff && outEnable) { |
76 if (MLT_pin != 1) |
76 if (MLT_pin != 1 && ! equipment.Hendi) |
77 MLT_time = xTaskGetTickCount(); |
77 MLT_time = xTaskGetTickCount(); |
78 gpio_set_level(SSR_MLT, 1); |
78 gpio_set_level(SSR_MLT, 1); |
79 MLT_pin = 1; |
79 MLT_pin = 1; |
80 } else { |
80 } else { |
81 if (MLT_pin) |
81 if (MLT_pin && ! equipment.Hendi) |
82 runtime.MLT_usage += xTaskGetTickCount() - MLT_time; |
82 runtime.MLT_usage += xTaskGetTickCount() - MLT_time; |
83 gpio_set_level(SSR_MLT, 0); |
83 gpio_set_level(SSR_MLT, 0); |
84 MLT_pin = 0; |
84 MLT_pin = 0; |
85 } |
85 } |
86 } |
86 } |
121 static int oldval = -1; |
121 static int oldval = -1; |
122 |
122 |
123 if (outEnable) { |
123 if (outEnable) { |
124 if (percent < 0) { |
124 if (percent < 0) { |
125 val = 0; |
125 val = 0; |
|
126 MLT_time = xTaskGetTickCount(); |
126 } else if (percent > 100) { |
127 } else if (percent > 100) { |
127 val = 1024; |
128 val = 1024; |
128 } else { |
129 } else { |
129 val = (percent * 1024) / 100; |
130 val = (percent * 1024) / 100; |
130 } |
131 } |
131 } else { |
132 } else { |
132 val = 0; |
133 val = 0; |
|
134 MLT_time = xTaskGetTickCount(); |
133 } |
135 } |
134 |
136 |
135 /* |
137 /* |
136 * If the Hendi is on, the lowest setting is 500 Watt. So, if we need less then |
138 * If the Hendi is on, the lowest setting is 500 Watt. So, if we need less then |
137 * 10% power, turn it off, just like the manual knob. |
139 * 10% power, turn it off, just like the manual knob. |
140 |
142 |
141 if (val != oldval) { |
143 if (val != oldval) { |
142 log_msg(TAG, "MLT_PWM(%d) val=%d %.0f watt", percent, val, (percent / 100.0) * equipment.MLT_watt); |
144 log_msg(TAG, "MLT_PWM(%d) val=%d %.0f watt", percent, val, (percent / 100.0) * equipment.MLT_watt); |
143 ledc_set_duty(LEDC_HIGH_SPEED_MODE, LEDC_CHANNEL_0,/* 1024 - */val); |
145 ledc_set_duty(LEDC_HIGH_SPEED_MODE, LEDC_CHANNEL_0,/* 1024 - */val); |
144 ledc_update_duty(LEDC_HIGH_SPEED_MODE, LEDC_CHANNEL_0); |
146 ledc_update_duty(LEDC_HIGH_SPEED_MODE, LEDC_CHANNEL_0); |
|
147 if (val >= 10) { |
|
148 runtime.MLT_usage += (xTaskGetTickCount() - MLT_time) * (percent / 100.0); |
|
149 } |
|
150 MLT_time = xTaskGetTickCount(); |
145 } |
151 } |
146 oldval = val; |
152 oldval = val; |
147 } |
153 } |
148 |
154 |
149 |
155 |