-
        

Ergebnis 1 bis 6 von 6

Thema: Bestimmte Curser-Position im LCD-Display anfahren

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    03.08.2004
    Alter
    31
    Beiträge
    96

    Bestimmte Curser-Position im LCD-Display anfahren

    Anzeige

    Halli Hallo,

    ich hab heute das erste mal ein LCD-Display angesteuert. Ich habe einen Atmega8 verwendet, das Display ist ein 2x16 Zeichen (HMC16223SG von Pollin). Ich habe den Code von dem Tutorial auf der mikrocontroller.net website verwendet: http://www.mikrocontroller.net/artic...-Tutorial:_LCD
    Das ganze funktioniert auch ganz gut ... allerdings kann ich nur nacheinander Zeichen anzeigen lassen und nicht zu bestimmten Positionen (z.B. 5tes Zeichen, zweite Spalte) springen. Ich hab gelesen, dass ma dazu irgendwie die DDRAM Adresse ansprechen muss...ich verstehe aber nicht so ganz wie ich das anstellen soll....

    Wenn ich im Display 40 Zeichen dargestellt habe springt er in die nächste Zeile... wäre toll wenn es eine Möglichkeit gäbe das zu vereinfachen.

    Kann mir jemand erklären, wie ich solche "Kursersprünge" anstellen kann?

    Viele Grüße
    Raphael

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Es gibt normal bei jedem Display ein Register, das die DDRAM-Adresse beinhaltet. Ebenso sollte es ein Kommandobyte geben, diese Adresse zu setzen.

    Wie man die Adresse einstellt, steht normalerweise im Datenblatt. Blöderweise hat Pollin die Angewohnheit, als "Datenblatt" alles mögliche - ausser nützliches - reinzustellen.
    Da hier aber "HDD44780 kompatibel" steht, sollten diese Kommandos hier klappen: http://www.sprut.de/electronic/lcd/index.htm#befehle
    #ifndef MfG
    #define MfG

  3. #3
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Hallo!

    @ Raphael

    Es muss zuerst die Adresse, wo das Zeichen plaziert werden soll (z.B. für erste Zeile Anfang = 40h + 0...0Fh, zweite Zeile Anfang = C0h + 0...0Fh), als Befehl (mit RS=1) und anschliessend das Zeichen selbst als Data (mit RS=0) an Display geschickt werden.

    MfG

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    03.08.2004
    Alter
    31
    Beiträge
    96
    Hallo,
    danke es hat funktioniert.

    Bei dem Display das ich habe(HMC16223SG) sieht das Byte allerdings so aus 0b1zssssss; z = 0 ->Zeile 1, z = 1 -> Zeile 2, Mit den 6 verbleibenden Bits kann man dann die Stelle(Spalte) wählen.

    Den Wert habe ich dann als Instruktion ausgegeben (habe die Routine lcd_command verwendet).

    Funktioniert prima!

    Viele Grüße und danke für die Hilfe!

  5. #5
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Hallo!

    Na ja, inteligentes Probieren geht's immer schneller als bedenklos Studieren. Mich hat nie Interesiert, was für ein Kontroller mein LCD hat. Die Anfangsadressen der Zeilen müssen doch in einem Byte liegen und bei 2-Zeilen mit ASM gibt es nur 256/32 = 8 Möglichkeiten zum ausprobieren ...

    MfG

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556
    Wenn es auf Geschwindigkeit nicht ankommt...einfach xyz Lerzeichen
    (space) voraus senden.....

    Gruß Richard

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •