AD-Wandler 10bit in 8bit Timer einlesen

Gast #211722
Hallo!

Meine Timerschaltung funzt soweit ganz schön.
Nun muß ich natürlich noch ein bißchen Feinarbeit leisten.

Also,...
Mein ADWandler im Attiny 26 wandelt auf 10bit um.
Dieser Wert soll in das Vergleichsregister des Timers1 geschoben
werden.
Das Register ist aber ein 8bit-Register.
Ihr könnt Euch vorstellen, daß es dann Probleme gibt!

Die Analogspannung kommt von einem Poti (linear).
Sie wird auch schön im ADC gewandelt.
Allerdings reagiert die Schaltung nicht "linear" auf die
Poti-Einstellung.
Liegt eigentlich nur an der 10 zu 8bit-Geschichte, oder?

Dabei gehen Bits verloren, bzw. es wird Müll in den Timer geschrieben.
Lt. Datenblatt genügt es, um den ADC auszulesen, x = ADC zu schreiben.
Wird hierbei aber automatisch ein 8-bit-Wert erzeugt?
Sprich zwei Bits "geschoben" o. ä.?

Klärt mich mal auf!
Es wäre ganz schön, wenn mein Timer proportional auf die Poti-Stellung
reagiert.
Je größer die Analogspannung, desto länger die Timeraktion.

Gruß,
Andreas
Gast #211724
Hi Andreas,

ich kenne zwar den Attiny26 nicht aber
z.B. beim mega8 kann man im Register ADMUX
enstellen dass nur ein 8 Bit Wert vom ADC
ausgegeben wird. Dann erspart man sich die
Wandlerei.
Schau mal im Datenblatt, müsste eigendlich auch beim Attiny26 funzen.

Gruss Gerhard
Gast #211725
Warum zweimal?

Egal, du kannst den ADC so einstellen, dass die niedrigen zwei Bit
gleich verworfen werden. Siehe ADLAR im ADMUX - oder kurz RTFM.
Gast #211726
Hi

Ich habe im Moment kein Datenblatt vom ATiny26 da. Bei anderen Atmel's
kannst du mit dem ADLAR-Bit in einem ADC Register einstellen ob das
ADC-Ergebnis rechts- oder Linksbündig in die ADC-Ergebnis-
register eingelesen werden. Normalerweise werden die unteren 8Bit in
ADCL und die oberen 2 in ADCH geschrieben. Ich nehme an ,daß das bei
dir so ist. Bei ADLAR=1 sind die oberen 8 Bit in ADCH. Du brauchst nur
diesen Wert auszulesen und in dein Timerregister zu übernhmen. Dann
sollte es gehen.

MfG HG

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.