Hi,
ich meine mal gelesen zu haben, dass die AVR's 'pipelining' betreiben.
http://de.wikipedia.org/wiki/Pipeline_%28Prozessor%29
soll heißen, dass der AVR beim einlesen des ADCSRA evtl. auf einen alten stand von ADCSRA zugreift. Bin mir allerdings nicht 100% sicher. Hier im RNetz kennt sich sicher jemand besser aus und kann erklären warum dass in diesem Fall nicht zutrifft.![]()
Aber schalt mal die Optimirung aus und probier das:
mfg chCode:ADCSRA |= (1<<ADIF); //reset Flag ; ; ; ; while (!(ADCSRA & (1<<ADIF))){}







Zitieren

Lesezeichen