Der Lars schrieb:
> Den Code habe ich mit Hilfe des Tutorials selbst zusammen gebastelt und
> sieht nun so aus:
Warum nimmst du dann nicht erst mal die ADC-Routinen aus dem
AVR-GCC-Tutorial so wie sie sind. Und wenn du dann etwas am laufen hast,
fängst du vorsichtig an, sie abzuändern.
> ADCSRA = (1<<ADEN) | (1<<ADFR) | (1<<ADIE);
Gib niemals einen Interrupt frei, wenn du ihn nicht brauchst!
> Mein Eigentliches Problem ist aber, dass ich nicht weiß, wie das
> eigentliche Ergebnis, Also im Grunde der Wert "ADCH", nachher aussieht.
Eine Zahl zwischen (da du ADLAR aktiviert hast) 0 und 255
> aber dadurch bin ich immer nicht schlauer geworden, weil ich
> das Gefühl habe, dass das Ergebnis immer 0 ist.
Da du das Gefühl hast, es also nicht sicher weißt, ist es in ALLEN
Projekten immer eine extrem gute Idee, sich zuerst mal einen Weg zur
Ausgabe zu schaffen. Und zwar nicht nur mit einer einzelnen LED, sondern
im besten Fall einen Weg, an dem du Zahlenwerte direkt ausgeben kannst.
UART würde sich zb anbieten, weil man dort alles im Klartext ausgeben
kann. Zur Not gehen auch 8 LED an einem Port, an dem man Zahlen binär
rausgeben kann. Dann muss man eben selber ein wenig umrechnen.
Aber eine einzelne LED ist für Anfänger kein sehr gutes Debug-Werkzeug.
Mit ein wenig Erfahrung geht es schon, aber es ist sehr mühsam und
erfordert eine gut ausgebildete Debug-Strategie.
Und nein: Das schlimmste was du als Beginner annehmen kannst ist, dass
du auf Anhieb ein fehlerfreies Programm hinkriegen wirst. Egal wie
einfach die Aufgabe aussieht. Das ist die absolute Ausnahme. Der
Normalfall ist, dass eben nichts funktioniert. Daher ist es eine gute
Idee, sich bei einer neuen Thematik, so wie bei dir ADC, sich zunächst
mal getestete und erprobte Funktionen (wie die vom Tutorial) zu nehmen
und mit denen zu arbeiten. Hat man dann ein wenig Sicherheit, dann
ändert man sie ab. Aber: vorsichtig und in kleinen Schritten abändern!
So dass man jeder Zeit wieder zu etwas Funktionierendem zurück kann,
wenn man eine Änderung verbockt hat.