//#define dig1 23
//#define dig2 22
//#define dig3 21
//#define dig4 19
//#define dig5 5
//#define dot 18
#define SegA 13
#define SegB 12
#define SegC 14
#define SegD 27
#define SegE 26
#define SegF 25
#define SegG 33
hw_timer_t *My_timer = NULL;
void show(int num);
bool Set_dot=0;
int dig_sel[6]={23,22,21,19,5,18};
int Seg[8]={13,12,14,27,24,26,25,33};
char binary[][10]={"00000011","10011111","00100101","00001101","10011001",
"01001001","01000001","00011111" ,"00000001","00001111"};
void setup()
{
Serial.begin(115200);
for(uint8_t i=0;i<6;i++)
{
pinMode(dig_sel[i],OUTPUT);
}
for(uint8_t i=0;i<8;i++)
{
pinMode(Seg[i],OUTPUT);
}
}
void high(int deg,bool stat)
{
digitalWrite(deg,stat);
//delay(10);
}
void write_seg(int Seg,int bin)
{
digitalWrite(Seg,bin);
//delay(10);
}
void low(int deg,bool stat)
{
digitalWrite(deg,stat);
//delay(10);
}
void loop()
{
char num[5];
//int val=19070;
static int cntr=3;
//int dig_sel[5]={dig1,dig2,dig3,dig4,dig5};
short int Hr=10,Min=59,Sec=14;
while(1)
{
long int cnt=0;
//while(cnt++<1000000);
Sec++;
if(Sec>=60)
{
Min++;
Sec=0;
}
if(Min>=60)
{
Hr++;
Min=0;
}
if(Hr>23)
{
Hr=0;
}
int T1,T2,T3,T4,T5,T,i=20;
String val;
bool blink=0;
sprintf(num,"%2d""%2d""%2d",Hr,Min,Sec);
Serial.print("Num:");
//Serial.println(num);
// Serial.println("Inside loop");
if(num)
{
Serial.println(num);
T1=num[0]-'0'; T2=num[1]-'0'; T3=num[2]-'0'; T4=num[3]-'0';
show(T1);
blink=1;
digitalWrite(dig_sel[5],1);
digitalWrite(dig_sel[0],1);
delay(i);
//digitalWrite(dig_sel[5],1);
digitalWrite(dig_sel[0],0);
if(blink=1) //&&(digitalRead(dig_sel[1])==1))
{
cntr++;
if(cntr>8)
{digitalWrite(dig_sel[5],1);Serial.println("ON");}
if(cntr>16)
{
digitalWrite(dig_sel[5],0);Serial.println("OFF");
cntr=0;
}
}
show(T2);
blink=0;
//digitalWrite(dig_sel[5],0);
digitalWrite(dig_sel[1],1);
delay(i);
digitalWrite(dig_sel[5],1);
digitalWrite(dig_sel[1],0);
//digitalWrite(dig_sel[5],1);
show(T3);blink=0;
digitalWrite(dig_sel[2],1);
delay(i);digitalWrite(dig_sel[5],1);
digitalWrite(dig_sel[2],0);
show(T4);blink=0;
digitalWrite(dig_sel[3],1);
delay(i); digitalWrite(dig_sel[5],1);
digitalWrite(dig_sel[3],0);
//digitalWrite(dig_sel[5],1);
}
}
}
/*void show(String val)
{
for(int i=0;i<8;i++)
{
int m=val[i];//binary value
int n=Seg[i];//segment pin
write_seg(n,m);
}
}*/
//void show()
void show(int num)
{
switch(num)
{
case 0:
digitalWrite(SegA,0);
digitalWrite(SegB,0);
digitalWrite(SegC,0);
digitalWrite(SegD,0);
digitalWrite(SegE,0);
digitalWrite(SegF,0);
digitalWrite(SegG,1);
break;
case 1:
digitalWrite(SegA,1);
digitalWrite(SegB,0);
digitalWrite(SegC,0);
digitalWrite(SegD,1);
digitalWrite(SegE,1);
digitalWrite(SegF,1);
digitalWrite(SegG,1);
break;
case 2:
digitalWrite(SegA,0);
digitalWrite(SegB,0);
digitalWrite(SegC,1);
digitalWrite(SegD,0);
digitalWrite(SegE,0);
digitalWrite(SegF,1);
digitalWrite(SegG,0);
break;
case 3:
digitalWrite(SegA,0);
digitalWrite(SegB,0);
digitalWrite(SegC,0);
digitalWrite(SegD,0);
digitalWrite(SegE,1);
digitalWrite(SegF,1);
digitalWrite(SegG,0);
break;
case 4:
digitalWrite(SegA,1);
digitalWrite(SegB,0);
digitalWrite(SegC,0);
digitalWrite(SegD,1);
digitalWrite(SegE,1);
digitalWrite(SegF,0);
digitalWrite(SegG,0);
break;
case 5:
digitalWrite(SegA,0);
digitalWrite(SegB,1);
digitalWrite(SegC,0);
digitalWrite(SegD,0);
digitalWrite(SegE,1);
digitalWrite(SegF,0);
digitalWrite(SegG,0);
break;
case 6:
digitalWrite(SegA,0);
digitalWrite(SegB,1);
digitalWrite(SegC,0);
digitalWrite(SegD,0);
digitalWrite(SegE,0);
digitalWrite(SegF,0);
digitalWrite(SegG,0);
break;
case 7:
digitalWrite(SegA,0);
digitalWrite(SegB,0);
digitalWrite(SegC,0);
digitalWrite(SegD,1);
digitalWrite(SegE,1);
digitalWrite(SegF,1);
digitalWrite(SegG,1);
break;
case 8:
digitalWrite(SegA,0);
digitalWrite(SegB,0);
digitalWrite(SegC,0);
digitalWrite(SegD,0);
digitalWrite(SegE,0);
digitalWrite(SegF,0);
digitalWrite(SegG,0);
break;
case 9:
digitalWrite(SegA,0);
digitalWrite(SegB,0);
digitalWrite(SegC,0);
digitalWrite(SegD,0);
digitalWrite(SegE,1);
digitalWrite(SegF,0);
digitalWrite(SegG,0);
break;
default:
digitalWrite(SegA,1);
digitalWrite(SegB,1);
digitalWrite(SegC,1);
digitalWrite(SegD,1);
digitalWrite(SegE,1);
digitalWrite(SegF,1);
digitalWrite(SegG,1);
break;
// delay(1000);
}
}
/*for(int k=0;k<4;k++)//digit select portion over
{
T=num[k]-'0';
//val=binary[T]; //show(val);
show(T);
//high(dig_sel[k],1); //
digitalWrite(dig_sel[k],1);
delay(20);
digitalWrite(dig_sel[k],0);
//low(dig_sel[k],0);
}*/