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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.