Hallo... habe ein kleines Problem mit einer globalen Variablen
Das Programm ist nur ein Versuch um die Interrupt Funktion zu testen.
LED 1 soll leuchten wenn der Interrupt eintritt, zugleich soll die Variable a auf 1 gesetzt werden. Nun wird im Hauptprogramm die Variable a abgefragt, wenn sie 1 ist, soll LED 2 leuchten. Mein Problem: LED 2 leuchtet nicht. Woran könnte das liegen?

Ich verwende MyAVR und einen Atmega 8.

Wäre schön wenn mir jemand helfen könnte.

Vielen Dank schonmal

Code:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <inttypes.h>

char a = 0;
void init(void)				//Initialisierung
  {
  
    DDRD  = 0b11100000; //Pin 765 = Output 0-4 = Input
	DDRC  = 0b00111000; //status LED ausgänge (Port C: 3,4,5)
	
	GICR|=(1<<INT0);  	//enables ext Interrupt (Pin 4, INT0)
    MCUCR = 0b00000011;	//Steigende Flanke an INT0 Löst aus
    sei (); 			//Global Interrupt enable
  }
ISR(INT0_vect)
  {
    a = 1;					//setzte a auf 1
	PORTC |= (1 << PC5);	//schalte 1. LED ein
  }
void main(void)
  {
    init();
	while (1);
	{
	  if (a == 1)			//wenn a = 1
	  {
	    PORTC |= (1 << PC4); //schalte 2. LED ein
	  }
	}
  }