main/task_driver.c

changeset 113
ac0c31c38959
parent 112
77cf1e9866e5
child 116
bafc2d6a0790
equal deleted inserted replaced
112:77cf1e9866e5 113:ac0c31c38959
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

mercurial