Forum: Mikrocontroller und Digitale Elektronik [avr] typecast 16 zu 8 bit


von avr-beginner (Gast)


Lesenswert?

Hallo zusammen,

ich lese den ADC eines ATmegas aus (10Bit) brauche aber nur die letzten 
8 Bit. Ich programmiere in C.
Darf ich das so machen:
uint8_t Wert
Wert = ADCW >> 2;

Oder gibt es irgend einen Typecast um von einer 16bit variablen auf ein 
8 Bitter zu kommen?
Danke

von Peter II (Gast)


Lesenswert?

und warum stellt du den ADC nicht auf 8Bit?

von avr-beginner (Gast)


Lesenswert?

hm ... wusste nicht, dass das geht. Danke, werde ich gleich mal 
nachschauen. Das "Problem" gibt es aber immer noch ... Ich habe noch 
eine andere 16bit Variable, bei der auch nur die hoechstwertigen 8 Bit 
gespeichert werden sollen. Wie kann man das sauber in einer 8 Bit 
Variable speichern?

von Peter II (Gast)


Lesenswert?

avr-beginner schrieb:
> Wie kann man das sauber in einer 8 Bit
> Variable speichern?

Wert = (uint_8)(ADCW & 0xFF)

aber wenn du ihn im 8Bit modus betreibst kann du doch einfach

Wert = ADCL

machen.

von barti (Gast)


Lesenswert?

Das gilt nur für 8bit Modus. Bei 10 Bit isses:

Wert = (uint8_t)(ADC >> 2)

von avr-beginner (Gast)


Lesenswert?

okay danke

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.