www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tiny45 - Problem mit ADC


Autor: Alex Grah (alexgrah)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forianer,

folgendes Problem: Mit einem Tiny 45 lese ich einen Analogwert 
(0...1,1V) an ADC2 (PortB.4) ein (die analogen Schaltungsteile laufen 
exakt). Mit folgender Initialisierung starte ich den ADC einmal zu 
Programmstart:

Adcsrb = &B00000000
Admux = &B10000010
Adcsra = &B11100110
Didr0.4 = 1

Dann lese ich im Polling einfach die Register des ADC aus:

Sendedaten(5) = Adcl                     'Low(sollwert)
Sendedaten(4) = Adch                     'High(sollwert)

(Der Rest der Software ist übrigens in BASCOM)

und übermittle die Daten seriell an ein Display. Das funktioniert genau 
bis 0,55V (h0200)- danach stimmen die ausgelesenen Werte nicht mehr, bei 
1,1V Eingangsspannung kommt nur noch h02FE (=766).

Ich kann mir das überhaupt nicht erklären, wir haben gemeinsam auch 
schon mehrere Baugruppen getestet.

Für Hilfe wäre ich wirklich SEHR dankbar ;o)

(Folgeproblem zu Beitrag "Tiny45 ADC mit falscher Referenz")

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, war da nicht was, dass man bei Word-Registern jeweils das obere Byte 
zuerst lesen/schreiben muss?

EDIT: Achne, hab' mich geirrt. Ist schon richtig.

Autor: Alex Grah (alexgrah)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gerade nochmal nachgeschaut: Wenn man beide Register auslesen will, muss 
zwingend adcl zuerst gelesen werden (p128 im Datenblatt, Mitte) - das 
passt also. Im übrigen klappt es ja irrwitzigerweise mit kleineren 
Spannungswerten. Ich probiere gleich nach dem Frühstück mal eine 
Single-Conversion...

Autor: Alex Grah (alexgrah)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einzelaufrauf macht das gleiche Ergebnis :(

Autor: Alex Grah (alexgrah)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Je nachdem, ob das Ergebnis left oder right adjusted ist, bekomme ich 
entweder hFEC0 oder h02FE geliefert. Auffällig ist, das das Bit adch.0 
IMMER 0 ist - offenbar baut der Controller hier einfach Mist ? Egal bei 
welcher Eingangsspannung ist die Zahl in adch immer eine gerade Zahl ! 
Hilfe ?!

Autor: Alex Grah (alexgrah)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat sich gerade erledigt: Die serielle Übertragung löscht das Bit 0 ! Es 
ist doch zum Mäusemelken.... :o)

Hat sich also erledigt.

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.