Relevant code at bottom(reversed order):
I downloaded the new version and this one actually lets the code compile. I think I followed the instructions correctly judging by the example and I have looked it over many times and I don't see what I have done wrong. Any help would be great as it is crucial for this project. I have tried many different time values for bounce (from 5millis to 2 seconds, no difference).
Code chunk 2 (time setting while block):
// CHANGES THE DEFAULT GAME TIME
while(dip1==1){
dip1 = digitalRead(timePin); // read the input pin for dipswitch 1
button1 = digitalRead(butt1Pin); // read the input pin for button 1
button2 = digitalRead(butt2Pin); // read the input pin for button 2setTime1.update(); // updating bounce object for buttons 1 and 2
setTime2.update(); // MOVE DIGIT is button 1, SET DIGIT is button 2
int time1Val = setTime1.read();
int time2Val = setTime2.read();if(time1Val==HIGH){
Serial.println("BUTTON 1");
Serial.println(time1Val);
}
if(time2Val==HIGH){
Serial.println("BUTTON 2");
Serial.println(time2Val);
}if(dip1==0){
disp1Metro.reset();
disp2Metro.reset();
}if(time1Val==HIGH){
setDigit += 1;
if(setDigit >= 4){
setDigit = 0;
}
}switch(setDigit){
case 0:
d2 = 0x78;
c2 = c;
b2 = b;
a2 = a;
if(time2Val==HIGH){
d += 1;
if(d >= 10){
d = 0;
}
}
break;case 1:
d2 = d;
c2 = 0x78;
b2 = b;
a2 = a;
if(time2Val==HIGH){
c += 1;
if(c >= 10){
c = 0;
}
}
break;case 2:
d2 = d;
c2 = c;
b2 = 0x78;
a2 = a;
if(time2Val==HIGH){
b += 1;
if(b >= 10){
b = 0;
}
}
break;case 3:
d2 = d;
c2 = c;
b2 = b;
a2 = 0x78;
if(time2Val==HIGH){
a += 1;
if(a >= 10){
a = 0;
}
}
break;
}if(blinkMetro.check() == 1){
blinkMetro.reset();
shiftOut(dataPin, clockPin, MSBFIRST, d2);
shiftOut(dataPin, clockPin, MSBFIRST, c2);
shiftOut(dataPin, clockPin, MSBFIRST, b2);
shiftOut(dataPin, clockPin, MSBFIRST, a2);
timeDelay = millis();
}
if(millis() - timeDelay >= 100){
shiftOut(dataPin, clockPin, MSBFIRST, d);
shiftOut(dataPin, clockPin, MSBFIRST, c);
shiftOut(dataPin, clockPin, MSBFIRST, b);
shiftOut(dataPin, clockPin, MSBFIRST, a);
}
}
Code chunk 1 (variables, buttons, etc):
#include <Bounce.h>
#include <Metro.h>
Metro disp1Metro = Metro(1000);
Metro disp2Metro = Metro(1000);
Metro blinkMetro = Metro(750);
long timeDelay = 0; // variable used to hold millis() for display blinking
int dataPin = 2; // connect to MOSI on both displays
int clockPin =3; // connect to SCK on both displays
int CS1 = 4; // connect to CS on first display
int CS2 = 5; // connect to CS on second display
int butt1Pin = 7; // input pin for button 1
int butt2Pin = 8; // input pin for button 2
int button1 = 0; // variable to store the read value of button1
int button2 = 0; // variable to store the read value of button2
int dip1 = 0; // variable to store the read value of dipswitch1
int hold = 0; // holds button value
int pause = 0; // variable to store the read value of pause latching switch
int a = 0; // seconds variable
int b = 0; // tens of seconds variable
int c = 1; // minutes variable
int d = 0; // tens of minutes variable
int b1Array[4] = {d, c, b, a}; //number2 to be displayed on CS1
int b2Array[4] = {d, c, b, a}; //numbers to be displayed on CS2
int alarmPin = 10; //triggers piezo buzzer
int timePin = 12; // switch to set time
int pausePin = 11; // pauses clock
Bounce setTime1 = Bounce(butt1Pin, 100); // instantiate bounce object for button 1
Bounce setTime2 = Bounce(butt2Pin, 100); // instantiate bounce object for button 2
int a2 = a; // variables used for changing default time
int b2 = b;
int c2 = c;
int d2 = d;
int setDigit = 0; // variable for selecting what time digit to blink and thus change