mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-28 05:06:32 +00:00
improve ADC_CT (#18369)
This commit is contained in:
parent
86be6c8a3d
commit
52060259ce
@ -469,7 +469,8 @@ void AdcGetCurrentPower(uint8_t idx, uint8_t factor) {
|
|||||||
uint16_t analog_max = 0;
|
uint16_t analog_max = 0;
|
||||||
|
|
||||||
if (0 == Adc[idx].param1) {
|
if (0 == Adc[idx].param1) {
|
||||||
for (uint32_t i = 0; i < samples; i++) {
|
unsigned long tstart=millis();
|
||||||
|
while (millis()-tstart < 35) {
|
||||||
analog = analogRead(Adc[idx].pin);
|
analog = analogRead(Adc[idx].pin);
|
||||||
if (analog < analog_min) {
|
if (analog < analog_min) {
|
||||||
analog_min = analog;
|
analog_min = analog;
|
||||||
@ -477,9 +478,11 @@ void AdcGetCurrentPower(uint8_t idx, uint8_t factor) {
|
|||||||
if (analog > analog_max) {
|
if (analog > analog_max) {
|
||||||
analog_max = analog;
|
analog_max = analog;
|
||||||
}
|
}
|
||||||
delay(1);
|
|
||||||
}
|
}
|
||||||
|
//AddLog(0, PSTR("min: %u, max:%u, dif:%u"), analog_min, analog_max, analog_max-analog_min);
|
||||||
Adc[idx].current = (float)(analog_max-analog_min) * ((float)(Adc[idx].param2) / 100000);
|
Adc[idx].current = (float)(analog_max-analog_min) * ((float)(Adc[idx].param2) / 100000);
|
||||||
|
if (Adc[idx].current < (((float)Adc[idx].param4) / 10000.0))
|
||||||
|
Adc[idx].current = 0.0;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
analog = AdcRead(Adc[idx].pin, 5);
|
analog = AdcRead(Adc[idx].pin, 5);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user