hello. I'm currently working on my university project. I'm working on a digital clock that i received from https://youtu.be/X-TmE2jNSL0 . Right now I'm stuck. There is "expected primary-expression ')' token . Please help me to solve this
#include<Wire.h>
#include<LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x20,16,2);
#define Latch 11
#define Data 9
#define Clock 10
#define up 2
#define down 3
#define set A3
#define menit
#define jam
#define detik
byte lowChar[] ={~B00111111,//0
~B00000110,//1
~B01011011,//2
~B01001111,//3
~B01100110,//4
~B01101101,//5
~B01111101,//6
~B00000111,//7
~B01111111,//8
~B01101111,//9
~B10000000,//titik
~B11111110,//Dig1
~B11111101,//Dig2
~B11111011,//Dig3
~B11110111,//Dig4
};
byte m1,m2,j1,j2;
long dmenit,djam,hold;
unsigned long prev;
void setup() {
lcd.begin();
pinMode(Latch,OUTPUT);
pinMode(Data,OUTPUT);
pinMode(Clock,OUTPUT);
pinMode(up,INPUT_PULLUP);
pinMode(down,INPUT_PULLUP);
pinMode(set,INPUT_PULLUP);
}
void loop() {
main:
detik();
menit(dmenit);
jam(djam);
if(djam== 11&& dmenit== 26){lcd.setCursor(0,0);lcd.print("Sholat Dzuhur");detik(); menit(dmenit);jam(djam);}
else if(djam== 14&& dmenit== 51){lcd.setCursor(0,0);lcd.print("Sholat Ashar");detik(); menit(dmenit);jam(djam);}
else if(djam== 17&& dmenit== 40){lcd.setCursor(0,0);lcd.print("Sholat Maghrib");detik(); menit(dmenit);jam(djam);}
else if(djam== 18&& dmenit== 56){lcd.setCursor(0,0);lcd.print("Sholat Isya");detik();menit(dmenit);jam(djam);}
else if(djam== 3&& dmenit== 47){lcd.setCursor(0,0);lcd.print("Sholat Subuh");detik();menit(dmenit);jam(djam);}
else {lcd.clear();}
if(digitalRead(set)==LOW){while(digitalRead(set)==LOW){}goto setmenit;}
goto main;
setmenit:
menit(dmenit);
jam(djam);
if(digitalRead(set)==LOW){while(digitalRead(set)==LOW){}goto setjam;}
else if(digitalRead(up)==LOW){while(digitalRead(up)==LOW){}dmenit++;}
else if(digitalRead(down)==LOW){while(digitalRead(down)==LOW){}dmenit--;}
goto setmenit;
setjam:
menit(dmenit);
jam(djam);
if(digitalRead(set)==LOW){while(digitalRead(set)==LOW){}goto main;}
else if(digitalRead(up)==LOW){while(digitalRead(up)==LOW){}djam++;}
else if(digitalRead(downm)==LOW){while(digitalRead(down)==LOW){}djam--;}
}
void detik(){
if(millis()-prev>60000){
dmenit++;
prev=millis();
}
if(dmenit>=60){
dmenit=0;
djam++;
}
if(djam>=24){djam=0;}
}
void jam(byte jm){
j1=(jm/10)%10;
j2=jm%10;
cetak(j1,11);
cetak(j2,12);
}
void(menit(byte mnt){
m1=(mnt/10)&10;
m2=mnt%10;
cetak(m1,13);
cetak(m2,14);
}
void shiftData(int nilai) {
switch (nilai) {
case 0; shiftOut(Data, Clock, MSBFIRST, lowChar[0]);break;
case 1; shiftOut(Data, Clock, MSBFIRST, lowChar[1]);break;
case 2; shiftOut(Data, Clock, MSBFIRST, lowChar[2]);break;
case 3; shiftOut(Data, Clock, MSBFIRST, lowChar[3]);break;
case 4; shiftOut(Data, Clock, MSBFIRST, lowChar[4]);break;
case 5; shiftOut(Data, Clock, MSBFIRST, lowChar[5]);break;
case 6; shiftOut(Data, Clock, MSBFIRST, lowChar[6]);break;
case 7; shiftOut(Data, Clock, MSBFIRST, lowChar[7]);break;
case 8; shiftOut(Data, Clock, MSBFIRST, lowChar[8]);break;
case 9; shiftOut(Data, Clock, MSBFIRST, lowChar[9]);break;
case 11; shiftOut(Data, Clock, MSBFIRST, lowChar[11]);break;//digit1
case 12; shiftOut(Data, Clock, MSBFIRST, lowChar[12]);break;//digit2
case 13; shiftOut(Data, Clock, MSBFIRST, lowChar[13]);break;//digit3
case 14; shiftOut(Data, Clock, MSBFIRST, lowChar[14]);break;//digit4
}
}
void cetak(char xl,char digit){
digitalWrite(Latch,0);
shiftData(digit);
shiftData(xl);
digitalWrite(Latch,1);
}