typedef struct blink_rate {
uint16_t on = 500;
uint16_t off = 500;
} blink_rate;
blink_rate rate;
uint32_t currentMillis;
bool led_builtin_status = LOW;
void setup(void)
{
rate.on = 20;
rate.off = 980;
currentMillis = millis();
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
led_builtin_status = LOW;
}
void loop(void)
{
if (led_builtin_status == HIGH)
if ((millis() - currentMillis) > rate.on)
{
digitalWrite(LED_BUILTIN, LOW);
currentMillis = millis();
}
if (led_builtin_status == LOW)
if ((millis() - currentMillis) > rate.off)
{
digitalWrite(LED_BUILTIN, HIGH);
currentMillis = millis();
}
}