Forum: Mikrocontroller und Digitale Elektronik LC Display Ansteuerung in Endlosschleife


von Lukas H. (lukas1)


Lesenswert?

Hallo Zusammen!

Habe eine Frage bezüglich einer LCD Ansteuerung.
Da ich in meinem Programm ( in assembler AVR programmier) die 
ausgegebenen Daten am LCD immer wieder erneuern muss ( also 
Spannungswerte jede 1/2 sekunde z.B.), muss dies in einer Endlosschleife 
programmiert werden.

Wie programmiere ich am besten, dass nicht jeder Wert nacheinander 
hingeschrieben , sondern nur der Wert auf der gleichen Position 
verändert wird?

Sonst würde mir ja am LC Display (Ausgabewert z.B.: 130 V) nur mehr 130 
V nacheinander stehen.

Ich verwende das LCD EA DIP204-4.

Bitte um Hilfe.
Danke!

Liebe Grüße Lukas

von Georg G. (df2au)


Lesenswert?

http://www.lcd-module.de/pdf/doma/dip204-4.pdf
Auf Seite zwei findest du die Befehlstabelle.
Und da gibt es "set DD-RAM address". Da erscheint dann dein nächstes 
Zeichen.

von Lukas H. (lukas1)


Lesenswert?

Danke für die schnelle Antwort!

Klappt soweit! Damit ich in der Spalte auf den richtigen Platz komme 
verwende ich "Set scroll quantity". Für die Zeile verwende ich DDRAM 
address.
Ich weiß nur nicht genau nach welchem Bitmuster ich die Spalte wechseln 
kann um die genaue position zu erreichen die ich möchte.

LG Lukas

von Programmierer (Gast)


Lesenswert?

Lukas Hub schrieb:
> Ich weiß nur nicht genau nach welchem Bitmuster ich die Spalte wechseln
> kann um die genaue position zu erreichen die ich möchte.

Siehe Seite 3 oben rechts.

Hast du dir das Datenblatt überhaupt mal angeschaut, oder einfach nur 
Code zusammenkopiert? Gib dir ein bisschen Mühe! :)

Auch der Hinweis auf Seite 1 hilft, es ist ein KS0073 Controller 
(HD44780 kompatibel) verbaut. Mit diesem Stichwort findest du auch hier 
im Forum Dutzende Links.

von spess53 (Gast)


Lesenswert?

Hi

>Ich weiß nur nicht genau nach welchem Bitmuster ich die Spalte wechseln
>kann um die genaue position zu erreichen die ich möchte.

Genau so mit Set DDRAM Adress. Auf S.3 vom Datenblatt findest du die 
Zeilenadressen im DDRAM. Um an eine betimmte Position zu kommen rufst du 
Set DDRAM Adress mit Zeilenanfang+Spalte auf.

MfG Spess

von Stephan (Gast)


Lesenswert?

ich lege das Display 1:1 im RAM ab und schreibe nur in den RAM.

von Lukas H. (lukas1)


Lesenswert?

Ja hab mir das Datenblatt angeschaut, aber hab die Zeilenadressen im 
DDRAM übersehen gg.
Danke an alle ! Klappt wunderbar. Schreibe jez auch alles im RAM.

LG Lukas

von Lukas (Gast)


Lesenswert?

Muss das Thema nochmal aufwerfen!

Ist es normal wenn ich alles Ins RAM schreib, dass wenn man gerade aufs 
Display schaut ein leichtes flimmern war nimmt?

Bzw. wie stelle ich das am besten ab?

LG

von Karl H. (kbuchegg)


Lesenswert?

Lukas schrieb:
> Muss das Thema nochmal aufwerfen!
>
> Ist es normal wenn ich alles Ins RAM schreib, dass wenn man gerade aufs
> Display schaut ein leichtes flimmern war nimmt?
>
> Bzw. wie stelle ich das am besten ab?

Code?

So etwas könnte zb daher kommen, dass ständig das LCD gelöscht und neu 
beschrieben wird.

von Lukas (Gast)


Lesenswert?

Ja es wird ständig neu beschrieben in einer Schleife.
Werte werden aktualisiert deswegen.

LG

von Karl H. (kbuchegg)


Lesenswert?

Lukas schrieb:
> Ja es wird ständig neu beschrieben in einer Schleife.

Es geht nicht um das Beschreiben.
Es geht um das Löschen!
Man kann ja auch bereits am LCD sichtbares mit neuen Dingen einfach 
überchreiben ohne vorher das LCD als ganzes zu löschen.

> Werte werden aktualisiert deswegen.

Und wie oft passiert das?
Alles was öfter als 3 bis 4 mal in der Sekunde ist, ist sowieso zu viel. 
So schnell kann keiner schauen und lesen.

Und dann muss mann natürlich auch nicht Dinge erneut aufs LCD schreiben, 
die eh schon dort stehen.


Das alles sind mögliche Punkte, die man ins Kalkül ziehen muss. Daher: 
WEnn du eine ordentliche, fundierte Aussage willst, die auch auf deinen 
Fall zutrifft: Code, Code, Code.

von Lukas (Gast)


Lesenswert?

Es wird nicht gelöscht!

Ja das ist richtig. Prinzipiell müssten sie nicht so oft aktualisiert 
werden.

Ok wenn es nur alle paar sekunden beschrieben wird verschwindet das 
ganze.
Habs soeben ausprobiert.

Muss ich dann die Timer anders setzen damit mein Drehimpulsgeber noch 
funktioniert. Habe die auswertung nämlich nicht über interrupt gemacht!

Danke jedenfalls

von Lukas (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Man kann ja auch bereits am LCD sichtbares mit neuen Dingen einfach
> überchreiben ohne vorher das LCD als ganzes zu löschen.

Das mach ich eben auch!

von Markus (Gast)


Lesenswert?

> Ist es normal wenn ich alles Ins RAM schreib, dass wenn man gerade aufs
> Display schaut ein leichtes flimmern war nimmt?

Ist die Cursoranzeige aktiviert? Der huscht dann beim ständigen 
Beschreiben mit über das Display.

von Lukas (Gast)


Lesenswert?

Danke Danke Danke!

Da hab ich ja gar nicht dran gedacht! :-)
Hab den Cursor ausgeschalten und es funktioniert ohne flimmern. Perfekt!

LG

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.