#include <PushButtonTaps.h>
#include <HT16K33.h>
extern volatile unsigned long timer0_millis;
HT16K33 jew(0x70);
byte lastButtonState = LOW;
const int baton = 2;
PushButtonTaps pushBtn;
int tapsRecorded = 0;
int tapTimesRead = 0;
uint16_t firstTapMs;
uint16_t gapBetweenTapsMs;
uint16_t secondTapMs;
void setup()
{
Wire.begin();
Wire.setClock(100000);
jew.begin();
jew.displayOn();
jew.setDigits(4);
// pinMode(baton, INPUT_PULLUP);
pushBtn.setButtonPin(baton);
}
void loop()
{
static uint32_t last = 0;
byte buttonState = pushBtn.checkButtonStatus();
uint32_t now = millis();
if (now != last)
{
last = now;
uint32_t s = now / 1000;
uint32_t t = (now - s * 1000) / 10;
s = s % 100;
jew.displayTime(s, t, true, false);
jew.displayColon(1);
}
if (buttonState == 2) {
lastButtonState = buttonState;
if (buttonState == LOW) {
noInterrupts ();
timer0_millis = 0;
interrupts ();
}
}
}