Forum: Mikrocontroller und Digitale Elektronik ADC Auflösung einstellen bei AVR


von Gast (Gast)


Lesenswert?

Hallo Leute,

eine kleine Frage.
Wenn im Datenblatt bei AVR steht, dass de µC eine Auflösung von 10Bit 
hat.
Bedeutet es, dass es max. Auflösung ist, sprich das man die Auflöung auf 
8Bit einstellen kann oder dass die Auflösung nur 10Bit ist, sprich man 
kann die Auflösung nicht verändern.

Leider habe ich nichts, dazu gefunden.

Warum frage ich. Ich arbeitet mit ATmega 8 und lese über Kanal 0 die 
Analogspannung ein. Wenn ich folgenden Code schreibe

>> while( ADCW > 0 )  PORTA |= (1<<PA7);

Wird der der Ausgang PA7 gesetzt.
Sobald ich folgendes schreibe

>> while( ADCW > 5 )  PORTA |= (1<<PA7);

wird der Ausgang PA7 nicht gesetzt.

Meine Analogspannung kommt von einem Poti, welcher die Spanung zwischen 
0-2,5 Volt ausgibt.
Kann man bei AVR (ATmega8) die Auflösung einstellen?

Gruß

von Dirk B. (devnull)


Lesenswert?

Hallo,

ich behelfe mir damit, dass ich das ADC-Ergebnis teile...
Um z.B. aus dem 10-bit ADC-Ergebnis einen 7-bit zu machen,
teile ich durch 8.

Liebe Grüße,
Dirk

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

AVRs haben die Eigenschaft, dass man den ADC so konfigurieren kann 
(ausrichten nach Links), dass man bequem 8 Bit lesen kann. Ohne dieses 
Feature ist es ebenfalls kein Problem. Zwei Mal schieben, weg sind die 
Bits.

von lightninglord (Gast)


Lesenswert?

Du kannst das über das ADLAR Bit im ADMUX-Register einstellen, einfach 
linksbündiges Ergebnis einstellen, dann brauchste nicht schieben oder 
sowas, sondern nur ein Byte auslesen ( Highbyte wenn ich mich nicht irre 
), da haste dan 8Bit Auflösung, wie mein vorredner schon sagte.

von F. V. (coors)


Lesenswert?

Wenn ich mich nicht irre muss man trotzdem beide Bytes auslesen, da der 
ADC sonst blockiert.

Also beide Bytes auslesen und einfach nur das Eine verarbeiten.

von spess53 (Gast)


Lesenswert?

Hi

>Wenn ich mich nicht irre muss man trotzdem beide Bytes auslesen, da der
>ADC sonst blockiert.

>Also beide Bytes auslesen und einfach nur das Eine verarbeiten.

Nein. Nur das H-Byte muss auf jeden Fall gelesen werden. Ansonsten erst 
L- dann H-Byte.

MfG Spess

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.