Hi! Ich verwende das 4x27 LCD von Pollin (HD44780 kompatibel) und die Ansteuerung von Peter Fleury. Ich lasse in jeder der 4 Zeile mehrere Werte anzeigen, die über ein Encoder-Rad verändert werden können. Über 8 Buttons (4 auf jeder Seite) kann man wählen, welchen Wert man verändern möchte. Der aktuell änderbare Wert soll aber auch irgendwie auf dem Display markiert / hervorgehoben werden, allerdings habe ich keinen Platz für ein Markierungszeichen. Ich bin mit den 27 Zeichen gerade so hingekommen. Den gesamten Wert möchte ich eigentlich nicht blinken lassen. Ich habe es mit dem Cursor probiert, doch dieser Rast dann durchs Display da ja alle Werte ständig aktualisiert werden. Gibt es einen Weg, den Cursor an oder aus zu schalten, ohne das Display neu zu intialisieren? (alternativ könnte man den Cursor natürlich auf das nicht existierende 28. Zeichen bewegen) Kann man den Cursor so einstellen, dass er bei Schreiboperationen nicht die Position ändert? Oder gibt es andere Möglichkeiten zur Markierung? Gruß Kersten
Hallo Kersten, meinst Du so was? ;--------------------------------------------------------------------- ;Schaltet den Cursor aus lcd_Cursor_off: push R16 ldi R16, 0b00001100 ;Cursor aus call lcd_command call delay_5ms pop R16 ret ;--------------------------------------------------------------------- ;Schaltet den Cursor ein lcd_Cursor_on: push R16 ldi R16, 0b00001110 ;Cursor ein call lcd_command call delay_5ms pop R16 ret ;--------------------------------------------------------------------- ;Zeichen über Cursor blinkt lcd_Blink_on: push R16 ldi R16, 0b00001101 ;Blinken ein + Cursor aus call lcd_command call delay_5ms pop R16 ret ;--------------------------------------------------------------------- ;Kein Blinken über Cursor lcd_Blink_off: push R16 ldi R16, 0b00001100 ;Blinken aus call lcd_command call delay_5ms pop R16 ret ;--------------------------------------------------------------------- Gruß Stevko
Danke für die Antwort! Also ist es doch möglich, den Cursor ohne das Display neu zu intialisieren, an oder aus zu schalten. Assembler kann ich leider nicht (rückt hiermit nach oben auf meiner Liste....) Das beste wäre ein blinkender Unterstrich beim ersten Zeichen des zu ändernden Wertes. Mein Problem ist halt, dass der Cursor immer mitläuft wenn ich was auf das Display schreibe (also wenn ich das Display aktualisiere). Der Cursor müsste fest sein.
Ich würde die ausgewählte Zahl invertiert darstellen. Also die entsprechenden invertierten Bitmaps der Nummern in den LCD-Speicher schreiben und dann ausgeben.
@Kersten: Es ist auch möglich den Cursor auf eine bestimmte Position in der Zeile zu setzen. Mit push/pop sind das ca. 6 ASM-Zeilen. Ich kann zwar kein C/Basic aber ich glaube da gibts ensprechende Befehle (gotoxy..?). Wenn Du Dir das Datenblatt von LCD mal ansiehst, wirst Du erstaunt sein, was man alles mit dem Display anstellen kann. Gruß Stevko
Ich bin zu 99% sicher, dass man den Cursor unsichtbar machen kann. Habe leider den Link für eine allgemeine Beschreibung der Befehle nicht hier ;-)
na mr.chip, was steht denn 4 Postings weiter oben? Oder meinst Du in einer Hochsprache den Cursor unsichtbar machen? Gruß Stevko
Ich habe jetzt noch ein paar Versuche mit dem Cursor gemacht: Cursor aus, Display aktualisieren, an gewünschte Stelle springen, Cursor wieder an. Cursor aus, Display aktualisieren usw. Ein Unterstrich als Cursor fällt leider zu wenig auf und ein blinkender Balken ist seltsam aus. Zumal der Cursor unregelmäßig flackert (durch das Abschalten bei der Aktualisierung).
Was verzählst du da eigentlich immer vom "Abschalten bei der Aktualisierung" ? Du kannst 1. den Bildschirm Software-seitig löschen 2. den Cursor an die zu ändernden Stellen setzen, um nur die benötigten Zeichen auszubessern 3. den Cursor an den Anfang setzen und einfach nochmal alles 4x27 reinschreiben
Ich aktualisiere Zeile 1-3 komplett, da jede Zeile 4 Werte anzeigt, die sich ständig ändern. Die vierte Zeile ändert sich nur am Ende und dort aktualisiere ich auch nur die letzen 2 Zeichen.
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.