debouncer.ino 329 B

1234567891011121314151617181920212223
  1. #include "debouncer.h"
  2. Debouncer::Debouncer()
  3. : timeout(0)
  4. {
  5. }
  6. void Debouncer::updateTime(millis_t delta) {
  7. if (timeout > delta) {
  8. timeout -= delta;
  9. } else {
  10. timeout = 0;
  11. }
  12. }
  13. bool Debouncer::sample(bool value) {
  14. if (value || timeout == 0) {
  15. timeout = DEBOUNCE_MS;
  16. return true;
  17. }
  18. return false;
  19. }