Hallo,

ich bleibe mal bei der idee mit der Einzelmessung, im zweifelsfall kann ich später noch im freilaufenden Modus wechseln.

Hab jetzt noch eine Warteschleife eingefügt und die Wertzuweisung geändert.

Code:
	char i=0;
	unsigned char volatile j=0;	
	unsigned short adc_temp=0;

	ADMUX = 0x40; // ADC0

	for(j=0; j<15; j++) { }	// 10us warten (etwas mehr als ein ADC-Takt)
	
	ADCSRA |= (1<<ADSC);
	/* Test AD-Wandlung durchführen */

	while (ADCSRA & (1<<ADSC))
	{
		;     // Auf Abschluss der Konvertierung warten
	}
  	adc_temp += ADC;
	adc_temp =0;
	/* Test-Wert löschen */
 
	for(i=0; i<4; i++)					// 4 Wandlungen durchführen
	{
		ADCSRA |= (1<<ADSC);            // eine Wandlung "single conversion	"
    	while (ADCSRA & (1<<ADSC))
		{
			;   // Auf Abschluss der Konvertierung warten
    	}

  		adc_temp += ADC;
	}
	adc_temp /= 2;					// Summe durch fünf teilen = arithm. Mittelwert
	adc_werte[0] = adc_temp;
	i=0;
Die Frage ist jetzt:

Ist das Programm schneller wenn ich das in eine Funktion packe und die Funktion 8 mal starte oder ist es schneller wenn es einfach (copy&paste sein dank) 8mal hintereinander steht?