constexpr int8_t pushButtonPin = 2;
constexpr int8_t ledPin = 3;
int count = 0;
int PrevCount = 0;
enum pushButtonStates : int8_t {
PRESSED = 0,
RELEASED = 1
};
volatile pushButtonStates pushButtonStatus = RELEASED;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(pushButtonPin, INPUT_PULLUP);
attachInterrupt(0,updateState,FALLING);
}
void updateState() {
pushButtonStates currentState = (pushButtonStates)digitalRead(pushButtonPin);
if(currentState != pushButtonStatus)
pushButtonStatus = currentState;
}
void loop() {
switch(pushButtonStatus) {
case PRESSED:
digitalWrite(ledPin, HIGH);
Serial.println(++count);
pushButtonStatus = RELEASED;
break;
case RELEASED:
digitalWrite(ledPin, LOW);
break;
}
}