int numCounter = 0;
int SegmentScore1 = 0;
int SegmentScore2 = 0;
const int SER_Pin = 10;
const int SRCLK_Pin = 9;
const int RCLK_Pin = 8;
const int SER_Pin1 = 13;
const int SRCLK_Pin1 = 12;
const int RCLK_Pin1 = 11;
int BootterGreen = A0;
int BootterRed = 7;
const byte digitMap[] = {
0b11000000, // 0
0b11111001, // 1
0b10100100, // 2
0b10110000, // 3
0b10011001, // 4
0b10010010, // 5
0b10000010, // 6
0b11111000, // 7
0b10000000, // 8
0b10010000 // 9
};
void setup() {
pinMode(SER_Pin, OUTPUT);
pinMode(SRCLK_Pin, OUTPUT);
pinMode(RCLK_Pin, OUTPUT);
pinMode(SER_Pin1, OUTPUT);
pinMode(SRCLK_Pin1, OUTPUT);
pinMode(RCLK_Pin1, OUTPUT);
pinMode(BootterGreen, INPUT);
pinMode(BootterRed, INPUT_PULLUP);
DDRD = 0b01111111;
DDRC = 0b011110;
}
void displayDigit(int digit) {
PORTD = digitMap[digit];
}
void displayTime(unsigned long time) {
int thousands = time / 100;
int hundreds = (time / 10000) % 10;
int tens = (time / 100) % 10;
int ones = time % 10;
displayDigit(thousands);
PORTC |= 0b000010;
delay(5);
PORTC ^= 0b000010;
displayDigit(hundreds);
PORTC |= 0b000100;
delay(5);
PORTC ^= 0b000100;
displayDigit(tens);
PORTC |= 0b001000;
delay(5);
PORTC ^= 0b001000;
displayDigit(ones);
PORTC |= 0b010000;
delay(5);
PORTC ^= 0b010000;
}
int startTime = 0;
void FX() {
while (true) {
if (startTime == 0) {
startTime = millis();
}
unsigned long currentTime = millis();
unsigned long elapsedTime = currentTime - startTime;
displayTime(elapsedTime);
int vol1 = digitalRead(BootterRed);
if (vol1 == LOW) {
SegmentScore1 ++ ;
displayDigit1(SegmentScore1);
displayDigit2(SegmentScore2);
return;
}
}
}
void loop() {
int vol = digitalRead(BootterGreen);
if (vol == LOW) {
//while (true) {
FX();
int vol1 = digitalRead(BootterRed);
if (vol1 == LOW) {
startTime = 0;
return;
}
}
// }
}
void displayDigit1(int digit) {
shiftOut(SER_Pin, SRCLK_Pin, MSBFIRST, digitMap[digit]);
digitalWrite(RCLK_Pin, LOW);
digitalWrite(RCLK_Pin, HIGH);
}
void displayDigit2(int digit) {
shiftOut(SER_Pin1, SRCLK_Pin1, MSBFIRST, digitMap[digit]);
digitalWrite(RCLK_Pin1, LOW);
digitalWrite(RCLK_Pin1, HIGH);
}