help: simple interrupt

Good day... i made this program to alternate the LEDs when interrupt is trigger..i tried uploading it and it work but the problem is that sometimes it alternates super fast that it seems it didn't alternate but the indicators blinked..heres my code..

int indicator_1 = 12;
int indicator_2 = 11;


volatile int turn = LOW;

void setup()
{
  pinMode(indicator_1, OUTPUT);
  pinMode(indicator_2, OUTPUT);
  attachInterrupt(1, blink, RISING);

}

void loop()
{
  if (turn == LOW){
  digitalWrite(indicator_1, HIGH);
  digitalWrite(indicator_2, LOW);
  }
  else if (turn == HIGH){
  digitalWrite(indicator_1, LOW);
  digitalWrite(indicator_2, HIGH);
  }
  else{
  digitalWrite(indicator_1, LOW);
  digitalWrite(indicator_2, LOW);
  }

}

void blink()
{
  turn = !turn;
}

PS: i know there are more simplest approach for this, but i really want to study interrupt so please help me tnx...

You need a delay(1000) or so in the loop() function to be able to see the blinking.

is there a function to delay the interrupt???or put time interval in it??i know that millis and delay doesn't work..

s there a function to delay the interrupt??

An interrupt is by definition an urgent event - there should be no reason to delay it, or delay in it

How are you triggering the interrupt? The most likely reason is that you are getting multiple interrupts because of "bounce" from the switch that is triggering the interrupt. Look up using a 7414 as a debounce circuit.

Also - you only need to check for HIGH or LOW as there are no other states, and Blink just changes the state of turn from High to Low.

Loop would be clearer like this -

void loop() { if (turn == LOW){ digitalWrite(indicator_1, HIGH); digitalWrite(indicator_2, LOW); } else { digitalWrite(indicator_1, LOW); digitalWrite(indicator_2, HIGH); }