Hallo, bei der Suche nach einer Lösung meines Problemes bin ich hier im Forum gelandet. Ich hab mir vor einiger Zeit ein C167-Board gebastelt, was auch ganz gut funktioniert. Nun war ich es leid ewig über RS232 zu "debuggen" und hab ein 2x16 LCD bzw ein 2x40 LCD angeschlossen. Beide alternativ. Beide über Port 2. P2.0 bis P2.7 als Daten und P2.8-P2.10 als RS,RW und E. Nach einigem fummeln gibt er auch die ersten Texte aus, doch Starten die Zeilen immer mit einem nicht von mir geschriebenen Zeichen. Auch funktioniert der Set-DRAM-Addressbefehl und einige andere nur nach zweimaliger Anwendung hintereinander. z.B. ... Schreiben a, schreiben l, clear display, clear display. Ich bin da ziemlich ratlos und hoffe Ihr könnt mir weiterhelfen. MfG, Marc
BUSY-Flag vom Modul eingelesen? Vielleicht schickst du dem Modul schon Daten bevor es sie noch verarbeiten kann. Oder am einfachsten mal probieren zwischen dein Befehlen ein Pause einfügen.
Danke für die Antwort. Hmm, busy Flag funktioniert nicht so richtig. Irgendwie hab ichs noch nicht raus, den Port zum lesen auf Input zu setzen. Und folgendes hab ich vergessen zu sagen. Auch bei normaler Textausgabe gibt er nur das vorletzt ausgegebene Zeichen aus. Wenn ich also "Hallo Welt" an das Display schicke, kommt nur "Hallo Wel". Ich hab ja fast das Flachbandkabel und damit verbundene Timingprobleme in Verdacht. Alle Beispiele von anderen langsameren Controllern konnte ich vergessen, da war der C167 zu schnell für das Display. Auch mit beliebigen Wartezeiten von 50 ms bis 500 ms hab ich alles Probiert. Er gibt dann zwar Text aus, aber mit den beschriebenen Symptomen :(. Keiner hier, der mal ein Assemblerbeispiel hätte, das wissentlich auf nem C166 C167 oder ST10 läuft ? Erfahrungen mit Timingproblemen oder Flachbandkabeln ? So langsam bin ich am verzweifeln ;) MfG, Marc
Hallo Marc, > Auch mit beliebigen > Wartezeiten von 50 ms bis 500 ms hab ich alles Probiert. Er > gibt dann zwar Text aus, aber mit den beschriebenen Symptomen > :(. versuch mal den Enable-Puls länger zu machen, indem du zwischen löschen und setzen des Enable-Bits eine Wartezeit einfügst. MfG Andreas
Hallo nochmal, hab mir alle Ratschläge zu Herzen genommen und nochmal die Bustimings des HD44780 Datenblatts mit meinem Code abgestimmt. Das Listing im Anhang sollte das Display initialisieren und "Hallo" ausgeben ( mit Busyflagauswertung ). Doch irgendwie kommt nie das selbe Raus. Mal kommt nix, mal nur ein HLL, doch meist nur der Standart, den ich auch ohne Busyflag erhalten habe: Das Zeichen 255 gefolgt von Hall, ohne o :((. Woher kommt das Phantomzeichen 255 und wieso verschluckt der ein paar Buchstaben ? Noch immer Timing ? Ist doch eigentlich nach Spec. Achja, die Portbelegung : P2.0-P2.7 D0-D7 P2.8 RS P2.9 RW P2.10 E Vielleicht noch ein paar Vorschläge ? Thanx Marc
Hi Marc, ich hatte bei meinem Reichelt 4x16 (bis gestern) auch jede Menge Probleme. Display Controller KS0070B. Was mir letztlich Erfolg gebracht hat, waren 10k Pullup-Widerstände an den Datenleitungen. Hab das Ding über 20 cm Flachbandkabel angeschlossen. Kann sein, daß darüber Störungen reinkommen. Vielleicht hilft's ja auch bei Dir. Good Luck, Gunter
Hi, ich habe das Display in den Datenbus/Adressbus gehängt - einfacher kann man den Zugriff kaum realisieren. CS-Leitungen sollen ja genug vorhanden sein. Das Problem mit dem Lesen hat sich dann auch erledigt, ansonsten muesstest Du das Port-Direction-Reg immer manuell umschalten. Wenn Du ein langen Flachbandkabel verwenden musst, wäre ein Bustreiber eine gute Idee, um den Daten/Adressbus nicht über riesige Entfernungen zu führen (wäre wohl keine so gute Idee). Man kann auch auf das Busy-Flag verzichten, muss allerdings dem Display genung Zeit zum Ausführen der Befehl lassen... Bis dann, Ingo!
Hi, hast du jetzt schon eine Lösung für dein Problem? Würdest du mir mal deinen Code schicken? Hab da einen Bekannten der da mit Sicherheit ne Lösung kennt. Wenn du Interesse hast dann den Code an: karsten-mueller87@gmx.de MFG
>hast du jetzt schon eine Lösung für dein Problem?
Nach 8 Jahren? Nee, der sitzt bestimmt noch vor'm Rechner und wartet auf
ne Antwort ;)
Oh :-D hab nur des Anfangsdatum gelesen und nciht das Jahr: Aber danke für den Tipp ;-)
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.