www.mikrocontroller.net

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


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Dirk B. (devnull)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hannes Jaeger (pnuebergang)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: lightninglord (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: F. V. (coors)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.