PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 8-Bit AD-Wandlung



Ozzy
05.07.2007, 08:37
Hi,

ich bin dabei eine AD-Wandlung zu machen. Allerdings bin ich mit gcc noch nicht so fit. Unter Assembler kann man ja schön Low- und High-Byte auslesen, und mit der Ausrichtung festlegen, ob man die oberen oder die unteren 8 bit haben möchte.
Geht so etwas auch unter gcc? Wichtig wäre mir, dass ich kein 16bit Register mehr brauche, um den 10bit Wert einzulesen, da 16bit-Register einfach nicht atomar für einen 8-bit Prozessor sind.
Geht das irgendwie, oder muss man wirklich erst in 16bit einlesen, und per Shift und Cast das in einen 8bit Wert verkleinern?

MfG, Ozzy

Hubert.G
05.07.2007, 09:21
Das geht mit einem AVR der ADC hat. Es gibt ein Bit im Register ADMUX das heist ADLAR, mit dem kann man das Ergebnis im 16bit Register ADC linksbündig formatieren. Dann fragt man nur das ADCH ab und hat ein 8bit Ergebnis. Ich weis jetzt nicht ob ich das verständlich formuliert habe, aber schau dir das mal im Datenblatt an.

Hubert

Ozzy
05.07.2007, 10:01
Hi,

die große Frage ist ja nun, wie man nur ein Byte ausliest...

Weißt Du vielleicht, wie?

MfG, Ozzy

Hubert.G
05.07.2007, 11:06
Wenn die Konversion komplett ist, ich mach das immer im Interrupt, dann sagt man " wert = ADCH; " und hat den Inhalt von ADCH in wert und kann von dort weiterarbeiten.

Hubert