Forum: Mikrocontroller und Digitale Elektronik AD Wandler 10bit-->8bit


von Massfan (Gast)


Lesenswert?

Hallo, habe ein kleines Problem bei meiner Schaltung möchte ich mit 
einem Atmega32 (SLAVE) einen mit dem Analogdigitalwandler einen Messwert 
ermitteln und über den I2C Bus ausgeben. Der Messeingang ist in diesem 
Fall PA0. Laut Datenblatt hat dieser Eingang einen 10 bit 
Wandlungsergebnis. Nun kann ich ja mit dem I2C Bus nur 8 Bit übertragen. 
Ich könnte auch erst ADDH und dann ADDL übertragen und die Werte dann 
später zusammenfügen, was aber extrem umständlich wäre. Also kann ich 
irgendwie aus der 10 bit zahl eine 8 bit Zahl machen? Oder gibt es eine 
andere Möglichkeit?

von Floh (Gast)


Lesenswert?

Massfan schrieb:
> Also kann ich
> irgendwie aus der 10 bit zahl eine 8 bit Zahl machen?

Jap. Den 10bit-Wert durch 4 teilen oder eleganter einfach das Ergebnis 
links ausgerichtet geben lassen (ADLAR-Bit) und nur das High-Byte 
abfragen (ADCH).
:-)

von Klaus D. (kolisson)


Lesenswert?

Der ATmega hat ein ADLAR Register!

Gruss K.

von Anyone (Gast)


Lesenswert?

Aber ein ADMUX-REgister und dort ein ADLAR-Bit, ADC Left Adjust Result.
Such mal im Datenblatt, da wirst du es im Abschnitt "ADC: ADMUX – ADC 
Multiplexer Selection Register" finden.

von Massfan (Gast)


Lesenswert?

Ich wußte es, aber ich wusste den richtigen Namen nicht mehr also ADDH 
und ADDL! ;)

von Massfan (Gast)


Lesenswert?

Also wenn ich das richtig verstehe, setzt ich ADLAR = 1 dann werden 
quasi nur die "weniger wertigen" Bits verschenkt?

von Peter D. (peda)


Lesenswert?

Massfan schrieb:
> Ich könnte auch erst ADDH und dann ADDL übertragen und die Werte dann
> später zusammenfügen, was aber extrem umständlich wäre.

Nö, überhaupt nicht.
Alle seriellen Busse machen das so (UART, CAN, Ethernet, USB, ...).


Peter

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter Dannegger schrieb:
> Alle seriellen Busse machen das so (UART, CAN, Ethernet, USB, ...).
Sollte heißen: Alle Byte-orientierten seiellen Busse machen das so.
SPI z.B. kann auch längere Worte übertragen... ;-)

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.