const int pb1 = 6;
const int pb2 = 21;
const int led1 = 3;
const int led0 = 13;
unsigned long currentTime = 0;
volatile bool buttonPressed = false;
void setup() {
// put your setup code here, to run once:
pinMode(pb1, INPUT_PULLUP);
pinMode(pb2, INPUT_PULLUP);//interrupts
pinMode(led1, OUTPUT);
pinMode(led0, OUTPUT);
attachInterrupt(digitalPinToInterrupt(pb2), blinkISR, FALLING);
}
void loop() {
// put your main code here, to run repeatedly:
blink(led0, 300);
//blink(led0, 300);
ctrLED();
if(buttonPressed)
{
buttonPressed = false;
digitalWrite(led1, HIGH);
}
}
void blink_block(int led, long interval)
{
digitalWrite(led, HIGH);
delay(interval);
digitalWrite(led, LOW);
delay(interval);
}
void blink(int led, long interval)
{
if(millis() - currentTime >= interval)
{
currentTime = millis();
digitalWrite(led, !digitalRead(led));//trun state according current state
}
}
void ctrLED(void)
{
if(digitalRead(pb1) == LOW)
{
digitalWrite(led1, HIGH);
}
else
{
digitalWrite(led1, LOW);
}
}
void blinkISR()
{
buttonPressed = true;
}