Mal wieder LCD...(gelöst)

  • Hallo


    Ich habe meine Bemühungen, ein LCD über einen AVR zu steuern, mal wieder aufgenommen und mir dazu mal was auf Lochraster zusammengelötet.


    Das LCD und der AVR sind folgendermaßen verschaltet:



    Das ist das Hauptprogramm:



    Displayroutinen:





    Mein Problem ist nun: es funktioniert nicht. Kontrast ist ok, die Leitungen sind auch alle sauber, keine Übergänge ect...trotzdem tut das LCD nix, außer eine Zeile schwarzer Balken anzuzeigen.
    Ich habe vorhin mal wild ein paar Befehle an das LCD gesendet, irgendwas...da hat mal der Cursor geblinkt und seine Position geändert, das war aber Zufall da ich nur iwelche Zeichen als Befehl anstatt als Daten gesendet habe.


    Display ist das hier:
    http://www.pollin.de/shop/dt/O…LCD_Modul_TC1602E_01.html




    Kann mir iwer helfen? Im Internet hab ich nix dazu gefunden, so ziemlich alle, die das Problem hatten, haben das in C umgesetzt.

    Das Erfolgskonzept von Windows ist eine gelungene Mischung aus Marketing, Korruption, Kartellmißbrauch und der erfolgreichen Spekulation auf das Naturgesetz, daß Scheiße oben schwimmt.


    Auch aus Steinen, die einem in den Weg gelegt werden,
    kann man Schönes bauen.
    Johann Wolfgang von Goethe

    2 Mal editiert, zuletzt von White_Fox ()

  • Hm...habs probiert, hat aber leider nix geändert....:(

    Das Erfolgskonzept von Windows ist eine gelungene Mischung aus Marketing, Korruption, Kartellmißbrauch und der erfolgreichen Spekulation auf das Naturgesetz, daß Scheiße oben schwimmt.


    Auch aus Steinen, die einem in den Weg gelegt werden,
    kann man Schönes bauen.
    Johann Wolfgang von Goethe

  • Das ist kein C, sondern Assembler.;)


    Ich werd das mit dem Pins-auf-GND-legen aber nochmal wiederholen wenn ich einen Lötkolben zur Hand habe. Hab sie eigt extra weggelassen weil ich irgendwo gelesen habe dass man die Pins hängen lassen soll.


    Trotzdem erstmal danke für deine Hilfe...:)

    Das Erfolgskonzept von Windows ist eine gelungene Mischung aus Marketing, Korruption, Kartellmißbrauch und der erfolgreichen Spekulation auf das Naturgesetz, daß Scheiße oben schwimmt.


    Auch aus Steinen, die einem in den Weg gelegt werden,
    kann man Schönes bauen.
    Johann Wolfgang von Goethe

  • Nimm mal andere Zeiten beim Initialisieren!
    Die 25ms sind wahrscheinlich zu lang und die 200µs eher zu kurz.
    Ich habe eine Routine die funktioniert mit jeweils 5ms Pausenlänge.


  • Habs mal geändert...immer noch nicht...:(
    Werd damit aber mal weiterexperimentieren.

    Das Erfolgskonzept von Windows ist eine gelungene Mischung aus Marketing, Korruption, Kartellmißbrauch und der erfolgreichen Spekulation auf das Naturgesetz, daß Scheiße oben schwimmt.


    Auch aus Steinen, die einem in den Weg gelegt werden,
    kann man Schönes bauen.
    Johann Wolfgang von Goethe

  • Hier wie in PM ausgemacht der Test Code:


    Drinnen ist das hier, HEX hängt im ZIP anbei:



    Vorausgesetzt, dass du das LCD so beschaltet hast, wie im verlinktem TUT!
    EDIT: Meine damit, das R/W an GND hängt, genau wie DB0-DB3!
    Alles andre ist auf deinen Atmega8 abgestimmt!


    Gruß


    Denis

  • Hm...Mist, will einfach nicht.
    Hab alle Pins so verbunden wie im Tut angegeben, das LCD zeigt aber noch imemr nur nen schwarzen Balken.



    Hat eigt irgendjemand dieses verkackte Ding überhaupt schonmal zum Laufen gebracht...? :cursing:


    Stimmt irgendwas in meinen Ablaufroutinen nicht? Zeiten hab ich schon in alle erdenklichen Richtungen geändert...

    Das Erfolgskonzept von Windows ist eine gelungene Mischung aus Marketing, Korruption, Kartellmißbrauch und der erfolgreichen Spekulation auf das Naturgesetz, daß Scheiße oben schwimmt.


    Auch aus Steinen, die einem in den Weg gelegt werden,
    kann man Schönes bauen.
    Johann Wolfgang von Goethe

  • Ich hab oben nur Die Verbindung ATMega8 und LCD dargestellt, das Hühnerfutter, Widerlinge für Hintergrundbeleuchtung, Kontrastpoti undsoweiterhastenichgesehn hab ich weggelassen.


    Ich hab ein Poti dran, mit dem kann ich die Balkenzeile auch wegdrehen...also Kontrast stimmt definitiv.

    Das Erfolgskonzept von Windows ist eine gelungene Mischung aus Marketing, Korruption, Kartellmißbrauch und der erfolgreichen Spekulation auf das Naturgesetz, daß Scheiße oben schwimmt.


    Auch aus Steinen, die einem in den Weg gelegt werden,
    kann man Schönes bauen.
    Johann Wolfgang von Goethe

  • Ich hab das Ganze Ding nochmal durchgemessen, diesmal nicht mit nem Durchgangsprüfer, sondern mit einem Ohmmeter und siehe da, da sind teilweise doch noch Übergangswiderstände, allerdings im M-Ohmbereich.


    Reichen so hohe Widerstände um mir die Ansteuerung zu versauen?
    Ich werd das auf jeden Fall so bald wie möglich bereinigen...



    EDIT:
    Da waren noch ein paar Flußmittelreste, die hab ich alle entfernt.
    Nun gibts wirklich keine Übergangswiderstände mehr.
    Ansonsten alles wie gehabt...:(

    Das Erfolgskonzept von Windows ist eine gelungene Mischung aus Marketing, Korruption, Kartellmißbrauch und der erfolgreichen Spekulation auf das Naturgesetz, daß Scheiße oben schwimmt.


    Auch aus Steinen, die einem in den Weg gelegt werden,
    kann man Schönes bauen.
    Johann Wolfgang von Goethe

    Einmal editiert, zuletzt von White_Fox ()

  • Juhu, ich habe einen ersten kleinen Erfolg eingefahren.:):):)
    Mein LCD zeigt jetzt nicht mehr nur schwarze Balken an, sondern ein "_" (natürlich ohne Anführungsstrichelchen.;)).


    Das ist doch schonmal wesentlich besser als nur einmal dunkler Balken.
    Wenn ich jetzt den Kontrast ganz hochdrehe, zeigt er mir auch ganz schwach die Balken in beiden Zeilen an...soweit so gut.



    Ganz glücklich bin ich aber noch imemr nicht.


    Erstens: Die Initialisierung funktioniert nicht, wenn ich den Strom einschalte. Ich muß immer erst einschalten und dann den Controller resetten.
    Selbst bei 250ms Wartezeit hauts nicht hin.


    Zweitens: Die Datenübergabe funktioniert auch noch nicht, das LCD zeigt mir keinerlei Zeichen an, dafür verschwindet aber der Cursor.




    Nachdem ich nach zwei Tagen Google quälen irgendwann stärker Richtung anderer Controller (KS0066U ) gesucht habe, habe ich einige brauchbare Hinweise hier gefunden:
    http://www.mikrocontroller.net/topic/58150


    Ich habe meine Initialisierungsroutine kurzerhand so umgebaut, dass sie den nach Datenblatt zitierten Ablauf abgeht, die weicht ja gehörig vom ach so kompatiblen HD44780 ab. 8o


    Das kam dabei herraus:


    Alles andere ist genau wie oben.


    Nun meine Fragen:
    Bei den rotmarkierten Stellen musste ich raten. Dantor, der User dier diesen Post verfasst hat, hat da nur die Maske notiert, keine Ahnung was da reingehört und was dann jeweils genau geschieht.


    Kennt jmd den KS0066U etwas besser und kennt jmd die entsprechenden Kommandos?
    Hat jmd vielleicht sogar ein Datenblatt von diesem Controller, dass er mir geben könnte?



    EDIT:
    Hab mal mit den Maskenbefehlen rumgespielt, etwas kompatibel scheint das Ding ja doch zu sein. Der Unterstrich ist definitiv der Cursor, der momentan blinkt.:)

    Das Erfolgskonzept von Windows ist eine gelungene Mischung aus Marketing, Korruption, Kartellmißbrauch und der erfolgreichen Spekulation auf das Naturgesetz, daß Scheiße oben schwimmt.


    Auch aus Steinen, die einem in den Weg gelegt werden,
    kann man Schönes bauen.
    Johann Wolfgang von Goethe

    2 Mal editiert, zuletzt von White_Fox ()

  • Prima...nun funktioniert das Ding endlich. :thumbup:



    Ich habe mal die Routinen für das TC1602E-01, wie ich sie bisher habe und wie sie hier verwendet wurden, angehängt.
    Falls noch wer sich mit ASM abmüht, dieses Pollin-LCD zum Laufen zu kriegen, so kann er sie gerne benutzen.
    Ich wäre froh gewesen wenn ich sowas gefunden hätte...



    Edit: Vielen Dank nochmal an alle, die mir dabei geholfen haben.
    Ganz besonders an Prying für das HEX-File.:)



    EDIT:
    Ich hab mal eine neue Version der Routinen angehangen. Die alte hatte noch Probleme mit Nullen bei der Dezimaldarstellung eines ganzen Registers.
    Die neue Version unterdrückt Nullen erst bei Zahlen >9, so ist die Anzeige mindstens zweistellig.

    Das Erfolgskonzept von Windows ist eine gelungene Mischung aus Marketing, Korruption, Kartellmißbrauch und der erfolgreichen Spekulation auf das Naturgesetz, daß Scheiße oben schwimmt.


    Auch aus Steinen, die einem in den Weg gelegt werden,
    kann man Schönes bauen.
    Johann Wolfgang von Goethe

    4 Mal editiert, zuletzt von White_Fox ()

  • Da es doch ein paar gab, welche meine Displayroutinen runtergeladen haben, hier noch ein Update.
    Die neue (und wohl letzte) Version, die ich hier veröffentliche, unterdrückt führende Nullen bei Dezimalzahlen nun ganz.
    Außerdem kann man nun Zeichenketten im Flash abspeichern und ans LCD ausgeben.