#include <fDigitsSegtPin.h>
fDigitsSegtPin Display(6, 5, 9, 4, 8, 13, 3, 12, 11, 7, 2, 10);
bool isActive = false;
unsigned long elapsedTime = 0;
unsigned long startTime = 0;
unsigned long currTime = 0;
int lastStartButton = LOW;
int currStartButton = LOW;
int lastClearButton = LOW;
int currClearButton = LOW;
unsigned long timer;
int sec = 0;
void setup() {
Display.begin();
pinMode(1, INPUT_PULLUP);
pinMode(0, INPUT_PULLUP);
}
void StartStop()
{
isActive = !isActive;
if(isActive)
{
startTime = currTime - elapsedTime;
}
}
void PushStartButton()
{
if(timer + 50 > millis())
{
currStartButton = digitalRead(1);
if(lastStartButton == HIGH && currStartButton == LOW)
{
StartStop();
}
}
lastStartButton = currStartButton;
timer = millis();
}
void PushClearButton()
{
if(timer + 50 > millis())
{
currClearButton = digitalRead(0);
if(lastClearButton == HIGH && currClearButton == LOW)
{
if(!isActive)
{
elapsedTime = 0;
}
}
}
lastClearButton = currClearButton;
timer = millis();
}
void loop() {
currTime = millis();
PushStartButton();
PushClearButton();
if(isActive)
{
elapsedTime = currTime - startTime;
}
sec = elapsedTime / 1000;
Display.print(sec);
}