-         

Ergebnis 1 bis 7 von 7

Thema: LCD immer "voll"

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    22.08.2006
    Ort
    Stendal
    Alter
    32
    Beiträge
    21

    LCD immer "voll"

    Anzeige

    Hi!

    Nachdem ich mein LCD (HD44780) endlich zum Laufen bekommen habe, habe ich nun ein Problem. Wenn ich Controller (Mega32) und Display einschalte, steht der programmierte Text auch wunderbar da. Resette ich den Controller, sind alle Pixel des Displays an (es leuchten also alle Kästchen). Eine Lösung hier im Fourm war, ein "initlcd" einzufüge, das führte aber nicht zum gewünschten Erfolg. Packe ich den Displaytext in eine Schleife mit "waitms 500", dann kann ich den Text problemlos lesen...

    Code:
      $regfile = "m32def.dat"
     $crystal = 8000000
    
     Config Lcd = 16 * 2
     Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
     Config Lcdbus = 4
    
     Initlcd
     Cursor Off
    
       Cls
       Locate 1 , 1
       Lcd "Hallo Sven"
    Mit diesem Quelltext ist das Display spätestens nach einem Reset immer schwarz...
    Ich hoffe, mit kann einer helfen...

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.07.2005
    Ort
    127.0.0.1
    Alter
    26
    Beiträge
    824
    Hallo

    Was passiert wenn du nach Cursor Off ein Wait einfügst?

    mfg Luca
    Sollte ein Bild von mir nicht angezeigt werden, einfach eine PM schicken!

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    22.08.2006
    Ort
    Stendal
    Alter
    32
    Beiträge
    21
    Mh... Ich sage mal ganz vorsichtig es funktioniert. Ganz vorsichtig weil: während der Wait-Befehl ausgeführt wird ist alles wunderbar, danach erscheinen aber beliebige Zeichen, der Text wird verschoben oder sonstiges, und dann habe ich das Gefühl die Schleife startet von vorn (obwohl kein Loop drin ist, ist aber ein regelmäßiger Ablauf erkennbar. Nehme ich wait 10 ist der Text für 10 Sekunden da, dann kurz irgendwelche Zeichen und dann wieder der Text für 10 Sekunden).

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.09.2005
    Beiträge
    276
    $regfile = "m32def.dat"
    $crystal = 8000000

    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
    Config Lcdbus = 4

    Waitms 100
    Initlcd
    Cursor Off

    Cls
    Locate 1 , 1
    Lcd "Hallo Sven"

    do
    Loop
    ----------------------------------------------
    Gento

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    25.09.2007
    Ort
    Oldenburg
    Alter
    43
    Beiträge
    80
    Hi,

    wie hast Du denn das LCD angeschlossen ? 4 Datenleitungen wie ich sehe.

    Config Lcdbus = 4

    kommt mir komisch vor, meines initialisiere ich nur mit

    Config Lcdmode = Port

    wobei das bei mir vermutlich ein Mischmasch mit den compilersettings ist. Nutzt man config lcdbus=4, muss man auch $LCD = [&H]address mitbenutzen, so steht es zumindest in der help.
    Und fehlt nicht das end ? Was macht Dein Programm, wenn es in der letzten Zeile ankommt ? Es geht doch wohl nicht in einen undefinierten Zustand ? Deswegen wird es bei Gento´s Code laufen, weil der Proz anbleibt. Anstelle des Do Loop geht halt auch ein end. Später in der Software übrigens nicht immer im Polling das Display schreiben, Du willst doch keine Beschäftigungstherapie für Dein Displaymodul machen, ausserdem schmiert dann gerne das Display ab, weil Du viel zu schnell hintereinander schreibst. Bau einen Interrupt oder einen einfachen Zähler und lasse das Display nur aktualisieren, wenn die entsprechende Zeit rum ist. Ich mache das mit einem "Anzeige aktualisieren"-Merker, also nur dann, wenn sich etwas an der Anzeige geändert hat.

    Das Initlcd braucht man soviel ich weiß nicht, da das lcd sofort beim ersten lcd-bezogenen befehl automatisch initialisiert wird.
    Alles wird gut... Gruß Alex

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    18.12.2006
    Ort
    Oderberg
    Alter
    25
    Beiträge
    870
    Zitat Zitat von Skragan
    wie hast Du denn das LCD angeschlossen ? 4 Datenleitungen wie ich sehe.
    Config Lcdbus = 4
    kommt mir komisch vor, meines initialisiere ich nur mit
    Config Lcdmode = Port
    Ich nehme auch Config Lcdbus = 4 und es geht auch ohne Lcd adress.
    Aber das End fehlt
    MfG Christopher \/


  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    22.08.2006
    Ort
    Stendal
    Alter
    32
    Beiträge
    21
    Alles klar! Lag an dem fehlenden "End"...
    Was solche Kleinigkeiten die man übersieht doch nicht alles bewirken...

    DANKE!!!

Berechtigungen

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