#define ON HIGH
#define OFF LOW
int LED_R1 = 13 , LED_Y1 = 12 ,LED_G1 = 14 ;
int LED_R2 = 27 ;
int K1 = 15 , K2 = 2 ;
int count = 0 ;
////---------------------------------
void IRAM_ATTR led_R2()
{
count = count+1 ;
Serial.print("Counter =: ") ; Serial.println(count) ;
for (int i=0 ; i<5 ; i++ ){
digitalWrite(LED_R2,ON);delay(300);
digitalWrite(LED_R2,OFF);delay(300);
Serial.println("INTERRUPT SERVICE ROUTINE") ;
}
}
//---------------------------------
void setup (){
pinMode (LED_R1, OUTPUT); pinMode (LED_Y1, OUTPUT); pinMode (LED_G1, OUTPUT);
pinMode (LED_R2, OUTPUT);
pinMode (K1, INPUT_PULLUP); pinMode (K2, INPUT_PULLUP);
Serial.begin(9600);
attachInterrupt(K1,led_R2 ,RISING );
detachInterrupt(K2);
}
//-------------------------
void control_led1(int R1 ,boolean stater1 ,int Y1 ,boolean stater2 ,int G1 ,boolean stater3 )
{
digitalWrite(LED_R1 ,stater1); digitalWrite(LED_Y1 ,stater2);digitalWrite(LED_G1 ,stater3);
}
///---------------
void loop( ){
Serial.println("MAIN PROGRAM INFINTY LOOP1") ;
control_led1(LED_R1,ON,LED_Y1,OFF,LED_G1,OFF); delay(1500);
Serial.println("MAIN PROGRAM INFINTY LOOP2") ;
control_led1(LED_R1,OFF,LED_Y1,ON,LED_G1,OFF); delay(1500);
Serial.println("MAIN PROGRAM INFINTY LOOP3") ;
control_led1(LED_R1,OFF,LED_Y1,OFF,LED_G1,ON); delay(1500);
}