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
Eine eigene Frage?
Dieser Thread ist über 25 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.