Forum: Mikrocontroller und Digitale Elektronik AD Wandlung mit AVR


von Benjamin Genter (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich arbeite mit dem AVR Atmega8l betrieben mit 1MHz und habe versucht
eine Spannung an einem analogen Eingang AD zu wandeln und den Wert über
die serielle RS232 Schnittstelle
auszugeben. Die Schnittstelle funktioniert. Die Bytes ADMUX und ADCSRA
hab ich dem Datenblatt entsprechend gesetzt. Der ADInterrupt
funktioniert ebenfalls. Allerdings steht in den Registern ADCH und ADCL
"/0" drin. Entsprechend erscheinen im Terminalprogramm z.B. die
Zahlen 248 (ausgabe on H und L Byte) , 254 bei (je bei L und H Byte)
Die Ascii Zeichen des Terminalprogrammes stimmen auch nicht mit der
offiziellen Ascii tabelle überein.
Hat jemand eine Idee an was es liegen könnte.ASM file im Anhang.
Danke im voraus für eure Antworten.

MfG Benni

von Volker Wunsch (Gast)


Lesenswert?

Hallo Benjamin,

du betreibst den A/D - Wandler im Single-Mode. Damit er dann aber auch
eine Wandlung in angriff nimmt, musst du den A/D-Wandler starten. Die
tut man, indem man das Bit ADSC im Register ADCSRA setzt. Danach
wartest du einfach, bis dieses Bit wider gelöscht ist und list dann die
Register ADCH und ADCL aus. Vorsicht hierbei, es muss nämlich, wenn ich
mich nicht irre, zuerst das LOW und dann das HIGH-Register ausgelesen
werden. Genaueres steht im Datenblatt.

Meine Registerbezeichnungen sind vom ATmega32, daher ich diesen nutze.
Hoffe jetzt mal einfach, das sie bei dir genauso heissen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.