Zitat Zitat von Murphywareinoptimist
ADCSRA |= (1<<ADSC);

Hätte es hier nicht auch ein einfaches oder getan? Wenn nicht warum nicht?
Es ist ja ein 'einfaches' oder. Der Befehl ist eine Kurzform von
ADCSRA = ADCSRA | (1<<ADCS);

Wenn Du ein Bit setzen willst, ohne den Rest des Registers zu verändern, ist das die einfachste Möglichkeit.
ADMUX = 0;
Hier wird der Kanal bestimmt der gewandelt werden soll... wer lesen kann ist klar im Vorteil. Habe die DIL Variante ... habe nur PC4 & 5 ignoriert.

Wenn ich die interne Referenzspannung nutzen möchte gebe ich hier also folgendes an?

ADMUX = C0;
Richtig!
Das Ergebnis ist ja 10 Bit breit. Also im HSB stehen nur zwei Bit mit relevanten Daten?
In der Standart-Konfguration (ADLAR=0) auch richtig!
Wenn ich ein 8 Bit genaues Ergebnis haben möchte (was ja die weitere Verarbeitung und Ausgabe sehr vereinfach) muss ich was tun?

O-Ton:

If the result is left adjusted and no more than 8-bit precision is required, it is sufficient to
read ADCH. Otherwise, ADCL must be read first, then ADCH, to ensure that the content
of the Data Registers belongs to the same conversion. Once ADCL is read, ADC access
to Data Registers is blocked. This means that if ADCL has been read, and a conversion
completes before ADCH is read, neither register is updated and the result from the conversion
is lost. When ADCH is read, ADC access to the ADCH and ADCL Registers is
re-enabled.

Wie kann das aber sein? Im ADCH steht doch nur ein Teil der auf 10 Bit bezogenen Messung oder??
Wenn Du das ADLAR-Bit im ADMUX-Register setzt, wird das Ergebnis Links ausgerichtet. Das heißt, das im ADCH-Register die oberen 8 Bit des Ergebnisses stehen. Die unteren 2 Bit stehen dann im ADCL-Register auf Bit 6 und 7.
Wenn Du also nur 8 Bit benutzen möchtest, ist es am sinnvollsten, die Linksausrichtung einzuschalten und nur ADCH auszuwerten.

Ich habe nur die ATMEL AppNote, Assembler Befehlscode und Beschreibung Atmega8.
Ich habe auch ein Buch über C. Was mir noch fehlt ist was über die speziellen Sachen für avr-gcc. Gibt es da was? Ich benutze zum Programmieren nur Programmers Notepad2 und gehe über eine normale ISP-Schnittstelle auf ein Experimentierboard.(Steckboard)
Im WinAVR ist ein Manual als pdf enthalten, allerdings auf englisch.
Ich glaube, es gibt auch eine deutsche Übersetzung. Wo man die bekommt, kann ich Dir aus dem Stehgreif nicht sagen.

Gruß,
askazo