From 1cbfbc697a2b0444943578ae6d48e8446b4a45f1 Mon Sep 17 00:00:00 2001 From: gemu2015 Date: Thu, 25 Jun 2020 07:34:00 +0200 Subject: [PATCH] fix sml counter irq mode --- tasmota/xsns_53_sml.ino | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tasmota/xsns_53_sml.ino b/tasmota/xsns_53_sml.ino index 18fd53bf5..bf46ace85 100755 --- a/tasmota/xsns_53_sml.ino +++ b/tasmota/xsns_53_sml.ino @@ -49,6 +49,7 @@ #define SPECIAL_SS #endif +#undef TMSBSIZ #define TMSBSIZ 256 // addresses a bug in meter DWS74 @@ -1785,6 +1786,7 @@ struct SML_COUNTER { uint32_t sml_cnt_last_ts; uint32_t sml_counter_ltime; uint16_t sml_debounce; + uint8_t sml_cnt_updated; #ifdef ANALOG_OPTO_SENSOR int16_t ana_curr; @@ -1813,7 +1815,8 @@ void SML_CounterUpd(uint8_t index) { sml_counters[index].sml_counter_ltime=millis(); if (ltime>sml_counters[index].sml_debounce) { RtcSettings.pulse_counter[index]++; - InjektCounterValue(sml_counters[index].sml_cnt_old_state,RtcSettings.pulse_counter[index]); + sml_counters[index].sml_cnt_updated=1; + //InjektCounterValue(sml_counters[index].sml_cnt_old_state,RtcSettings.pulse_counter[index]); } } else { // rising edge @@ -2310,6 +2313,13 @@ uint32_t ctime=millis(); if (cindex==1) SetDBGLed(meter_desc_p[meters].srcpin,DEBUG_CNT_LED2); #endif } + + if (sml_counters[cindex].sml_cnt_updated) { + InjektCounterValue(sml_counters[cindex].sml_cnt_old_state,RtcSettings.pulse_counter[cindex]); + sml_counters[cindex].sml_cnt_updated=0; + } + + } cindex++; }