ich möchte mit meine programm eine single conversion starten und das ergebnis auf 16 led´s ausgeben

doch irgendwie funktioniert mein programm nicht

könnt ihr mir bitte helfen!

//Hauptprogramm

#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdint.h>

void ADC_Init(void); //Prototyp des Unterprogramms

int main (void)

{

//Definitionen der Ports

DDRC = 0xff; //Port A als Ausgang definieren
PORTC = 0x00; //Port A wird auf low gelegt
DDRB = 0xff; //Port B als Ausgang definieren
PORTB = 0x00; //Port B wird auf low gelegt

DDRD = 0x00; //Port D als Eingang definieren
PORTD = 0xff; //Pull-Up aktivieren

uint16_t xl,xh;

while(1)
{

MCUCR|=(1<<ISC01)|(1<<ISC00); //Steigende Flanke löst Interrupt aus

sei(); //Interruptes global erlauben

xl = ADCL;
xh= ADCH;

PORTC = xl;
PORTB = xh;
}

}

ISR(INT0_vect) //INT0 ist der externe Interrupt0
{

ADC_Init(); //Aufruf des Unterprogramms ADC_Init

}


//--------------------------------------------------------------------------------------------
//Erstellung eines Unterprogramms zur AD Wandlung


void ADC_Init(void)
{
ADMUX = (1<<REFS1) | (1<<REFS0); //Verwendung der internen Referenzspannungsquelle
ADCSRA |= (1<<ADEN); // ADC aktivieren

ADCSRA |= (1<<ADSC); // Start einer ADC-Wandlung im single mode Betrieb
}