#define LED1_PIN 2
#define LED2_PIN 4
#define LED3_PIN 5
#define LED4_PIN 18
#define LED5_PIN 19
#define LED6_PIN 21
#define LED7_PIN 22
#define LED8_PIN 23
#define BUTTON_PIN 15
#define DEBUG 0
hw_timer_t *My_timer = NULL;
int state = 0;
void IRAM_ATTR flip_flop(){
if(state == 1){
digitalWrite(LED1_PIN, HIGH);
digitalWrite(LED2_PIN, HIGH);
digitalWrite(LED3_PIN, HIGH);
digitalWrite(LED4_PIN, HIGH);
digitalWrite(LED5_PIN, LOW);
digitalWrite(LED6_PIN, LOW);
digitalWrite(LED7_PIN, LOW);
digitalWrite(LED8_PIN, LOW);
state = 0;
}else{
digitalWrite(LED1_PIN, LOW);
digitalWrite(LED2_PIN, LOW);
digitalWrite(LED3_PIN, LOW);
digitalWrite(LED4_PIN, LOW);
digitalWrite(LED5_PIN, HIGH);
digitalWrite(LED6_PIN, HIGH);
digitalWrite(LED7_PIN, HIGH);
digitalWrite(LED8_PIN, HIGH);
state = 1;
}
}
void setup() {
pinMode(LED1_PIN, OUTPUT);
pinMode(LED2_PIN, OUTPUT);
pinMode(LED3_PIN, OUTPUT);
pinMode(LED4_PIN, OUTPUT);
pinMode(LED5_PIN, OUTPUT);
pinMode(LED6_PIN, OUTPUT);
pinMode(LED7_PIN, OUTPUT);
pinMode(LED8_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT);
if(DEBUG) Serial.begin(115200);
My_timer = timerBegin(0, 80, true);
timerAttachInterrupt(My_timer,
&flip_flop, true);
timerAlarmWrite(My_timer, 1000000,
true);
timerAlarmEnable(My_timer);
}
void loop() {
// do nothing
}