Files
Arduino-Volume-Controller/src/commonFunctions.cpp
Lyubomir Penev 702d6dfde9
All checks were successful
Build Code / build (push) Successful in 1m20s
Removed last return from debounceRead
2025-10-22 21:13:10 +02:00

34 lines
977 B
C++

#include <Arduino.h>
#include <commonFunctions.h>
#include <constants.h>
bool debounceRead(int buttonPin, int *lastButtonState, unsigned long *lastDebounceTime, int *buttonState)
{
int reading = digitalRead(buttonPin);
// If the switch changed, due to noise or pressing:
if (reading != *lastButtonState)
{
// reset the debouncing timer
*lastDebounceTime = millis();
}
if ((millis() - *lastDebounceTime) > DEBOUNCE_DELAY)
{
// whatever the reading is at, it's been there for longer than the debounce delay, so take it as the actual current state:
// if the button state has changed:
if (reading != *buttonState)
{
*buttonState = reading;
if (*buttonState == HIGH)
return true;
else
return false;
}
}
// save the reading. Next time through the loop, it'll be the lastButtonState:
*lastButtonState = reading;
}