ATMega16, ADC-Problem

OP #1727366
Lesenswert?

Hallo zusammen,
nachdem ich nun meine Timer und LCD's am laufen habe, versuche ich mich 
mit AD-Wandlung.
Ich habe hier einen Mega16 mit 8 MHz (interner RC). Nun habe ich mir 
eine externe Referenzspannung von 4 Volt eingestellt und an Aref 
angelegt und lasse mir den gewandelten Wert am LCD ausgeben.
Wenn ich nun ADC0 mit Aref verbinde, erscheinen Werte die zwischen 1020 
und 1024 schwanken. Vollkommen ok, so soll es ja auch sein.
Wenn ich nun aber ADC0 mit einer Spannung von 2.8 V beaufschlage, dann 
erscheinen Werte um die 7000.
Habe ich nun einen Fehler in der Wandlung oder bei der Ausgabe gemacht ?
#1727423
Lesenswert?

Wie stellst Du fest, was ausgelesen wurde?  Ich kann im Programm nichts 
entdecken, was einer Ausgabe ähnelt.

Wenn mit Debugger, bist Du vermutlich ein Opfer des Optimizers geworden, 
denn es gibt für den Compiler keinen Grund, z.B. result /= 4 zu 
berechnen.
#1727425
Lesenswert?

Du überschreibst nur das LCD.

Wenn da vorher der Text steht
1000

und du schreibst dann den Zahlenwert 700 drüber, dann steht da:

7000
   ^
   |
   +----- Diese 0 steht noch von den 1000 da und ist durch 700 nicht
          überschrieben worden. Der Text "700" ist schlicht und
          ergreifend zu kurz um diese 0 auch noch zu überschreiben.

Mach mal das hier

      sprintf(buffer,"%04d",result);

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren