- Labornetzteil AliExpress         
Ergebnis 1 bis 6 von 6

Thema: LCD PROBLEM

  1. #1

    LCD PROBLEM

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo!
    Eigentlich habe ich schon mal ne LCD library programmiert doch nun stehe ich wirklich vor einem rätsel.
    entweder bin ich völlig überarbeitet oder keine ahnung was los is.
    ich habe 2 sourcefiles beigelgt die meinermeinung nach mit dem atmega8l funktionieren sollten aber es nicht tun. die ports werden auch richtig auf ausgang bzw eingang gestellt...
    bitte helft mir weiter ich sollte das lcd in 1 bis 2 wochen einwandfrei ansteuern können.
    mfg lihp[/b]
    Angehängte Dateien Angehängte Dateien

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,

    ich würde sagen, das mit dem enable geht zu schnell, Du musst dem LCD ein wenig Zeit geben damit es mitbekommt dass das enable high ist.

    Evtl. würde ich die Daten zuerst auf die Leitung legen, dann erst das enable setzen, auch wenn normlerweise die Daten mit fallender Flanke übernommen werden sollen.

    Und auch im 4-Bit Mode muss man alle 8 Bit rüberschieben, das Busy kommt erst danach, beim lcdWriteInitcmd() geht da was ab.

    Wie lange wartest Du nach einem Reset bis das erste Byte gesendet wird, der Controller im LCD kann etwas länger brauchen als der AVR, so das die ersten Bytes ins Nirvana gehen. Wenn Du schon das BusyFlag überprüfst, kannst Du das auch schon vorher machen.

  3. #3
    Hallo!

    Danke für die schnelle Antwort.
    Ich habe schreibe jetzt die Daten bevor ich das Enable setze.
    Zwischen Enable setzen und loeschen warte ich jetzt immer 5µs.

    Mit der lcdWriteInitCmd(..) müsste schon alles passen da zu dem Zeitpunkt wo ich diese Aufrufe ja noch im 8 bit modus arbeite und die
    unteren 4 Daten Leitungen auf masse hängen.

    Vor dem Initialisieren warte ich auf einen Tastendruck der mit dem Leuchten einer Led dann bestätigt wird.

    Naja auf jeden fall gehts noch immer nicht \/ .

    Bitt helft mir

    mfg lihp
    Angehängte Dateien Angehängte Dateien

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Auch wenn man auf den 4-BitMode umschaltet, mus man schon beide Teile des Bytes übertragen, sonst haut es nicht hin !
    Denn im ersten Nibble ist schon das Bit für den 4-BitMode auf 0 und es wird umgestellt.

    Edit:
    Bzw. schreib statt den 0x30 gleich 0x20. 0x30 heisst 8Bit Mode.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    Noch eine kurze Frage zwischendurch,
    Bist Du Dir sicher, daß Du ein 44780 Kontroller hast, oder vielleicht nur einen Kompatiblen ?

    Ich hab mehrere Displays zu hause und die Initroutine ist schon mal ganz anders, obwohl Sie alle 44780 "Kompatibel" sind.
    Ein Blick ins Dattenblatt ist sehr wichtig.

    Noch ein Tip,
    Lass den Busy Flag mal weg, mach für den Anfang lange Pausen, wenn das dann alles klappt, kannst Du immernoch den Flag auslesen, und benutze bitte die "code" tags für Deine Programme.

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  6. #6
    hallo.
    hab jetzt statt der busy flag abfrage eine verzögerung eingebaut...jetzt funktioniert es.
    danke an alle.
    mfg lihp

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad