#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);
}
}
Loading
st-nucleo-c031c6
st-nucleo-c031c6