#include "SevSeg.h"
SevSeg sevseg;
int pinBtnStart = 11, pinBtnPause = 10;
int state = 0; //0 - STOPPED, 1 - STARTED
unsigned long timestamp;
float time = 0;
void setup(){
byte numDigits = 4;
byte digitPins[] = {A0, A1, A2, A3};
byte segmentPins[] = {4,9,3,5,7,6,8,2};
bool resistorsOnSegments = false;
byte hardwareConfig = COMMON_CATHODE;
bool updateWithDelays = false;
bool leadingZeros = false;
bool disableDecPoint = false;
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments, updateWithDelays, leadingZeros, disableDecPoint);
sevseg.setBrightness(90);
sevseg.setNumberF(time, 1);
pinMode(pinBtnStart, INPUT_PULLUP);
pinMode(pinBtnPause, INPUT_PULLUP);
}
void buttons(){
if(digitalRead(pinBtnStart) == LOW){
delay(20);
if(digitalRead(pinBtnStart) == LOW){
while(digitalRead(pinBtnStart) == LOW);
state = 1;
time = 0;
timestamp = millis();
}
}
if(digitalRead(pinBtnPause) == LOW){
delay(20);
if(digitalRead(pinBtnPause) == LOW){
while(digitalRead(pinBtnPause) == LOW);
state = !state;
timestamp = millis();
}
}
}
void states(){
if(state == 1 && millis() - timestamp >= 100){
time += 0.1;
timestamp = millis();
sevseg.setNumberF(time, 1);
}
}
void loop(){
buttons();
states() ;
sevseg.refreshDisplay();
}