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")
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.
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...
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 ?!
Hat sich gerade erledigt: Die serielle Übertragung löscht das Bit 0 ! Es ist doch zum Mäusemelken.... :o) Hat sich also erledigt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.