Forum: Mikrocontroller und Digitale Elektronik Analogwert auf LCD ausgeben


von Alexander V. (alexvo)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
ich versuche mich gerade ein bisschen mit Mikrocontrollern sowie der 
Programmiersprache C auseinander zusetzen.
Nun stoße ich leider an meine Grenzen:
Ich habe das Entwicklungsboard von ehajo..
Entwicklungumgebung AtmelStudio
Verwendeter MC Atmega328P
Ein LCD Display habe ich erfolgreich angeschlossen und initialisiert. 
Ich kann auch schon gewünschte Texte mit einem String an das Display 
senden.
Jetzt habe ich mir einen AD Wandler programmiert und möchte mir gerne 
den Inhalt der Variable auf dem LCD-Display anzeigen lassen.
Dafür benötige dann also den Konverter itoa .. Soweit so klar...
Jetzt meine Frage:
Wenn ich einen 10 bit Wandler habe, kann ich ja logischerweise Werte im 
Bereich von 2^10 darstellen.. also 0 bis 1023 richtig?
Lade ich mein Programm in den Kontroller zeigt er mir zunächst 0 An.. 
drehe ich an dem Poti steigt der Wert bis 1023.. Drehe ich das Poti nun 
zurück kriege ich ein utopischen Wert auf dem LCD angezeigt.. 
(irgendeinen 4stelligen Wert bis zu 9000... Drehe ich den Poti wieder in 
Nullstellung, bleibt immer ein anderer Wert auf dem Display stehen.. z.B 
230...
Kann mir jemand sagen wo der Fehler liegt??

Ich kann mir eigentlich nicht vorstellen das der Wert tatsächlich bei 
8000 liegt?! Gerade da es sich ja um einen 10 bit Wandler handelt


Im Anhang ein Screenshot von meinem verwendeten Programm..
Bin über jede Hilfe dankbar..

von JensM (Gast)


Lesenswert?

Das Problem ist ganz einfach.

bei den neuen Werten werden nicht 4 Zeichen geschrieben sonder weniger.

schreib mal

lcd_string( Buffer );
lcd_string("    ");


Gruß JensM

von Noch einer (Gast)


Lesenswert?

Eine Theorie dazu:

Nach itoa(1023, buffer, 10) steht 1023 auf dem Display.

itoa(99, buffer, 10) gibt einen 2 Zeichen langen String aus.
lcd_string("99") überschreibt nur die ersten zwei Ziffern auf dem 
Display, die anderen beiden bleiben unverändert - übrig bleibt "9923".

von Alexander V. (alexvo)


Lesenswert?

Hallo Jens!
Danke für die Hilfe du hast recht!
Es funktioniert..
Kannst du mir kurz erklären warum?

von Alexander V. (alexvo)


Lesenswert?

ahh war zu schnell da kam schon eine Antwort!! Super Danke!!

von SATAN (Gast)


Lesenswert?

Solche Fehler macht man, wenn man anstatt selber zu programmieren und zu 
verstehen was man da macht, sich seine Programme aus Beispielen 
"zusammen klaut". Früher hat man sich hingesetzt und probiert und durch 
logisches Denken seinen Fehler gefunden. Heute reicht die intellektuelle 
Fähigkeit  gerade mal dazu das Internet zu bemühen und andere zu 
befragen und man bastelt sich seine Programme weiter aus Beispielen 
zusammen. Das Wort "Programmieren" dürfte in diesem Zusammenhang 
eigentlich gar nicht mehr benutzt werden. Das ist der Grund warum wir 
die Fachkräfte aus dem Ausland importieren müssen. In Indien scheint 
nicht jeder Internet zu haben und löst seine Probleme selber und kann 
dann am ende wirklich was. Wohingegen hier der Nachwuchs nicht aus den 
BastlerSchuhen herauskommt.

von M. K. (sylaina)


Lesenswert?

Alexander V. schrieb:
> Kannst du mir kurz erklären warum?

Grob gesagt: Das Display knippst nur Leuchten da an und aus, wo man ihm 
sagt dass es Leuchten an und aus knipsen soll. Sagt man ihm also nicht, 
dass es Leuchten an/aus knipsen soll tut es das auch nicht.

SATAN schrieb:
> Früher hat man sich hingesetzt und probiert und durch
> logisches Denken seinen Fehler gefunden.

Und der TE hat gefragt, was daran falsch sein soll vermag ich nicht zu 
sagen. Ich finde es im Zeitalter des Internets völlig legitim zu fragen. 
Genau das ist ja der Sinn dieses Forums.

: Bearbeitet durch User
von SATAN (Gast)


Lesenswert?

Michael K. schrieb:
> Genau das ist ja der Sinn dieses Forums.

Habe ich auch nicht angezweifelt. Der Sinn einer Zigarette ist es, 
geraucht zu werden. Ob das Sinnvoll ist oder nicht, steht auf einem 
anderen Blatt.

von M. K. (sylaina)


Lesenswert?

SATAN schrieb:
> Michael K. schrieb:
>> Genau das ist ja der Sinn dieses Forums.
>
> Habe ich auch nicht angezweifelt. Der Sinn einer Zigarette ist es,
> geraucht zu werden. Ob das Sinnvoll ist oder nicht, steht auf einem
> anderen Blatt.

Ja, dein Beitrag hat nur nicht wirklich dem TE geholfen. Du wirfst ihm, 
im Prinzip, hier nur vor zu fragen:

SATAN schrieb:
> …Heute reicht die intellektuelle
> Fähigkeit  gerade mal dazu das Internet zu bemühen und andere zu
> befragen…

Aber was an deinem Post sollte nun zur Lösung des Problems des TEs 
beitragen?

von W.S. (Gast)


Lesenswert?

Michael K. schrieb:
> Aber was an deinem Post sollte nun zur Lösung des Problems des TEs
> beitragen?

Früher hat man an solcher Stelle gesagt "Ohne Fleiß kein Preis".

Falls das hier eine zu komplizierte Metapher sein sollte, kann man auch 
sagen "vor dem Fragen einfachster Fragen sollte man sich selbst um das 
Verstehen der Dinge bemühen, kurzum selbständig werden."

W.S.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Man kann auch die Länge des Strings als Kriterium nehmen und durch 
führende Leerzeichen auf z.B. vierstellig auffüllen. Dann muss man nicht 
immer das ganze Display löschen und es bleibt trotzdem kein Müll auf dem 
LCD.

von M. K. (sylaina)


Lesenswert?

W.S. schrieb:
> Früher hat man an solcher Stelle gesagt "Ohne Fleiß kein Preis".

Früher sagte man auch: "Fragen kostet nichts."
Anscheinend hat sich das auch geändert. :(

von Thomas H. (Firma: CIA) (apostel13)


Lesenswert?

W.S. schrieb:
> Falls das hier eine zu komplizierte Metapher sein sollte, kann man auch
> sagen "vor dem Fragen einfachster Fragen sollte man sich selbst um das
> Verstehen der Dinge bemühen, kurzum selbständig werden."

Sehe ich auch so. Satan hat recht. Jesus was für ein Satz :-)

von Harald W. (wilhelms)


Lesenswert?

Michael K. schrieb:

> Früher sagte man auch: "Fragen kostet nichts."
> Anscheinend hat sich das auch geändert. :(

Nein, das trifft immer noch zu. Eine Antwort dagegen
kann durchaus was kosten. :-)

von Wolfgang (Gast)


Lesenswert?

Wenn man immer nur im Internet andere nach der Lösung fragt, läuft man 
Gefahr, nur bestehendes Wissen zu reproduzieren. Damit sind der 
Innovation durch selbständiges Denken Tür und Tor versperrt.

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
Noch kein Account? Hier anmelden.