LCD über 74HC595 ansteuern

#875924
Lesenswert?

Hallo zusammen,
ich benötige mal wieder ein wenig Hilfe.

Mit den Routinen im Anhang versuche ich über ein 74HC595 ein LCD
anzusteuern.
Ich habe zu diesem Zweck die LCD Routinen aus dem Tutorial umgebaut.

Grundsätzlich scheinen die Routinen zu funktionieren. Jedoch benötige
ich mehrere Resets bevor das LCD den Text korrekt anzeigt.

Ich vermute deshalb ein Problem im Timing. Leider habe ich keine Idee
mehr wo ich noch ansetzen könnte.

Es wäre sehr nett, wenn ihr mit dem ein oder anderen Tipp aushelfen
könntet.

Danke und Gruß
Frank
Angehängte Dateien:
#875953
Lesenswert?

Hallo Jochen,
habe ich schon alles gemacht, hat keine Veränderung ergeben.

Entweder, ist die Handhabung von RS und E falsch, was meine Vermutung 
ist, oder ich übergebe die Daten schlicht weg falsch.

Beides ist möglich, aber ich sitze schon den ganzen Tag an den Routinen 
und irgendwann wird man Betriebsblind.

Gruß
Frank
Gast #875975
Lesenswert?

Der 595 ist beim Timing in der Ansteuerung völlig unkritisch.
So fixe Controller gibts gar nicht.

Die üblichen Verdächtigen wäre also:

_delay_us();
_delay_ms();


Schon mal mit einem Oszi getestet das die richtig gehen?
#876007
Lesenswert?

Frank Link wrote:
> leider bekomme ich in 90% aller Neustarts des Controllers wirres Zeug
> auf dem Display zusehen.

Ja, Deine Initialisierung ist für die Katz.

Schau Dir mal diesen Code an:

http://www.mikrocontroller.net/attachment/30300/lcd_drv.zip

In der Initialisierung darfst Du noch keine Kommandos senden, sondern 
nur je ein Nibble.
Du bist ja noch nicht im 4-Bit Modus.


Das mit der echten Division ist sehr code- und zeitfressend.
Machs besser mit byte_nr = x>>3; und bit_nr = x&7;


Peter
#876043
Lesenswert?

Hallo zusammen,
vielen Dank für die ganzen Tipps, letztlich war es Dein Tipp Peter 
(vielen Dank) und mein Steckboard dessen Alter wohl vor Methusalem 
liegt.

Durch Kontaktprobleme beim senkrechten Stellen kam es wohl zu unsauberen 
Signalen.

Jetzt klappts.

@Peter
Ich habe Die Routinen aus dem Attachment so übernommen und angepasst.
Das Attachment stammt das von Dir? Da ich die Routine auch in die 
Codesammlung stellen möchte, möchte ich natürlich auch den korrekten 
Ursprungsautor benennen.

Dabei habe ich wiedermal feststellen müssen, dass ich viel zu sehr in 
Delphi verhaftet bin und für C und Mikrokontroller anscheinend viel zu 
kompliziert denke.

Gruß
Frank
#876370
Lesenswert?

Frank Link wrote:

> Das Attachment stammt das von Dir?

Ja.


> Dabei habe ich wiedermal feststellen müssen, dass ich viel zu sehr in
> Delphi verhaftet bin und für C und Mikrokontroller anscheinend viel zu
> kompliziert denke.

Bei mir isses umgekehrt, ich habe keine Ahnung von PC-Programmierung 
(außer kleine DOS-Sachen <50kB)). Ich rätsele da immer wieder wie man 
hunderte Megabytes verbraten kann. Aktuelle Programme werden nur noch 
auf DVD geliefert (CD mit 800MB reicht nicht mehr).
Ich hab auch den Verdacht, PC-Programmierer denken viel zu kompliziert 
oder geben sich keine Mühe.

Aufm MC reichen wenige kB Flash und 128 Byte SRAM dicke aus.


Peter
Persönliche Seite #1412299
Lesenswert?

Hallo, ich habe zur Zeit das selbe Problem mit meinem Display, die 
ebenfalls über zwei 595er angesteuert werden, daher hole ich einfach mal 
den Beitrag aus der Versenkung, da ich zZt. nicht weiter komme.
Das Display soll im 8 Bit Modus laufen. Das große Problem das ich zur 
Zeit habe ist ebenfalls, dass das Display erst nach mehreren Anläufen 
erst funktioniert ansonsten sehe ich auf Zeile 0 und 2 einfach nur 
schwarze Balken... Ab und zu funktioniert dieses aber halt nich 
zuverlässig.
Daher ist meine Frage ob jemand vielleicht weiß an was das liegen 
könnte.

mfG Björn

PS: auch wenn man es nicht sieht mit dem delay, die F_CPU sowie die 
dazugehörige lib ist vorhanden und included.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren