#define BITCOUNTER 4
#define DELAYTIME 1000
#define MAXCOUNT 16

int8_t ledPin[] = {13, 12, 11,10};
int ledDelay[4]={8000, 4000,2000, 1000};

// declare other required variables
int8_t count;

void setup() {
  Serial.begin(9600);
  for(int i=BITCOUNTER-1;i>=0;i--){
     pinMode(ledPin[i], OUTPUT);
    digitalWrite(ledPin[i], LOW);     
  } 
  count=0;
}


void loop() {
  
  // implement the toggling logic
  delay(DELAYTIME);
  if (count == MAXCOUNT) ReinitVal();
  count++;
  int8_t delayCount;

  for(int8_t i =BITCOUNTER-1;i>=0;i--){ 
  delayCount = ledDelay[i]/DELAYTIME;

  if (count >= delayCount && count % delayCount ==0)  digitalWrite(ledPin[i], !digitalRead(ledPin[i]));

 }
  
  Serial.println(count);
}
void ReinitVal()
{
  count=0;
  for(int8_t i=BITCOUNTER-1;i>=0;i--){   
    digitalWrite(ledPin[i], LOW);   
  }
}