Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix counter rising edges when CounterDebounceLow/High is set #20712

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions tasmota/tasmota_xsns_sensor/xsns_01_counter.ino
Original file line number Diff line number Diff line change
Expand Up @@ -71,15 +71,18 @@ void CounterIsrArg(void *arg) {
// passed debounce check, save pin state and timing
Counter.timer_low_high[index] = time;
Counter.pin_state ^= (1<<index);
// do not count on rising edge
// for rising edge
if bitRead(Counter.pin_state, index) {
// PWMfrequency 100
// restart PWM each second (german 50Hz has to up to 0.01% deviation)
// restart initiated by setting Counter.startReSync = true;
#ifdef USE_AC_ZERO_CROSS_DIMMER
if (index == 3) ACDimmerZeroCross(time);
#endif //USE_AC_ZERO_CROSS_DIMMER
return;
// do not count on rising edge if CounterDebounceLow and CounterDebounceHigh is unset
if (0 == Settings->pulse_counter_debounce_low && 0 == Settings->pulse_counter_debounce_high) {
return;
}
}
}

Expand Down