int digit[4] = {28,27,22,14};
int number[10] = {126,12,182,158,204,218,250,14,254,222};
int t0;
int t;
int dig1;
int dig2;
int dig3;
int dig4;
bool start = false;
void setup(){
DDRD=254;
DDRB=31;
PORTB=30;
}
void loop(){
if(digitalRead(13)==1){
start = !start;
t0 = millis();
delay(200);
}
if (start == true){
t=(millis()-t0)/10;
out(t);
if (dig1 == 1){
start = false;
}
}else{
out(t);
}
}
void out(int value){
dig1 = value/1000;
dig2 = (value % 1000)/100;
dig3 = ((value % 1000) % 100)/10;
dig4 = value % 10;
for(int d = 0; d <= 3; d++){
PORTB = digit[d];
switch(d){
case 0:
PORTD=number[dig1];
break;
case 1:
PORTD=number[dig2];
break;
case 2:
PORTD=number[dig3];
break;
case 3:
PORTD=number[dig4];
break;
}
delay(5);
PORTD=0;
}
}