mit diesem code funktioniert es nun:

Code:
#include <avr/io.h>

int main(void)
{
	DDRD = 0xFF;
	while (1)
	{
		  uint8_t i;
		  uint16_t result;
		  int i2 = 60;
		  ADMUX = (0<<REFS1)|(1<<REFS0);                      // Kanal waehlen
		  ADMUX |= (1<<REFS1) | (1<<REFS0); // interne Referenzspannung nutzen

		 
		  ADCSRA = (1<<ADEN) | (1<<ADPS1) | (1<<ADPS0);    // Frequenzvorteiler 
									   // setzen auf 8 (1) und ADC aktivieren (1)
		 
		  /* nach Aktivieren des ADC wird ein "Dummy-Readout" empfohlen, man liest
			 also einen Wert und verwirft diesen, um den ADC "warmlaufen zu lassen" */
		  ADCSRA |= (1<<ADSC);              // eine ADC-Wandlung 
		  while ( ADCSRA & (1<<ADSC) ) {
			 ;     // auf Abschluss der Konvertierung warten 
		  }
		  result = ADCW;  // ADCW muss einmal gelesen werden,
						  // sonst wird Ergebnis der nächsten Wandlung
						  // nicht übernommen.
		 
		  /* Eigentliche Messung - Mittelwert aus 4 aufeinanderfolgenden Wandlungen */
		  result = 0; 
		  

		  for( i=0; i<i2; i++ )
		  {
			ADCSRA |= (1<<ADSC);            // eine Wandlung "single conversion"
			while ( ADCSRA & (1<<ADSC) ) {
			  ;   // auf Abschluss der Konvertierung warten
			}
			result += ADCW;		    // Wandlungsergebnisse aufaddieren
			
		  }
		  ADCSRA &= ~(1<<ADEN);             // ADC deaktivieren (2)
		 
			result /= i2;                     // Summe durch vier teilen = arithm. Mittelwert
			if (result < 128)
			{				
				PORTD = 0b10000000;
			}
			else if (result >= 128 && result < 256)	
			{
				PORTD = 0b01000000;
			}
			else if (result >= 256 && result < 384)	
			{
				PORTD = 0b00100000;
			}
			else if (result >= 384 && result < 512)	
			{
				PORTD = 0b00010000;
			}
			else if (result >= 512 && result < 640)	
			{
				PORTD = 0b00001000;
			}
			else if (result >= 640 && result < 768)	
			{
				PORTD = 0b00000100;
			}
			else if (result >= 768 && result < 896)	
			{
				PORTD = 0b00000010;
			}
			else
			{
				PORTD = 0b00000001;
			}
	}
	return 1;
}
mit den 16 MHz hab ich meinen Quarz gemeint^^