Hallo,

ich habe ein C-Prgramm geschrieben, um die Werte am AD-Wandler in einem Feld zu speicheren, aber im ganz feld wird der gleichen Wert gespeichert.
Mit Breack-Point klappt das schon, aber bei normal Lauf nicht.
zwischen nach jede AD-Wandler auslesen warte ich einige Zeit, ich habe verschiedene werte von Zeit benutzt aber trozdem keine Wirckung:

for(i=0;i<20;i++)
{
test[i]= umsetzen_Spannung();
ADCSRA=0;
wait_10ms(50);
PORTB=0x00;
wait_10ms(50);
}

/****************AD_WAndler initialisieren und auslesen************/

void Adc_Init(void)
{
ADCSRA = 0xC0; //Durch das setzen von Bit ADEN schaltet Der AD-Umsetzer ein
ADMUX = 0x03; //wählt der Kanal(ADC3) und setzt die Rferenzspannung auf 5v
}

unsigned int umsetzen_Spannung(void)
{
ADCSRA = 0xD6; //AD-Umsetzer Starten und Prescaler auswählen
while ( ADCSRA & (1<<ADSC)); //Warte-Schleife bis Ende der Umsetzung
Ergebnis=(ADCL+(ADCH<<);
PORTB=0x17;
//return (ADCL+ADCH*256);
return Ergebnis; // Im ADCL sind die ersten 8 bits des Ergebnisses
// Im ADCH sind die restlichen 2 Bits gespeichert
}



Danke für jede Hilfe