Forum: Compiler & IDEs LCD-Initialisierung


von Benjamin (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

ich habe an ein STK500 + STK501- Board mit einem ATmega128 (Fosc=8MHz)
ein LCD angebaut. Dieses wollte ich in Betrieb nehmen, aber irgendwie
scheint meine Initialisierung nicht zu funktionieren! Kann mir
vielleicht jemand helfen?
Meinen Code findet ihr im Anhang!
Ich kann mir nicht erklären warum das Disply nichts tut! Ich halte mich
strickt an die vorgegebenen Zeiten. Vielleicht sieht ja jemand von euch
den Fehler den ich mache!

Gruß
Benjamin

von Sonic (Gast)


Lesenswert?

Wie lange und welcher Art sind die Zuleitungen zum Display? Evtl. hast
Du Antennen gebaut?

von Benjamin (Gast)


Lesenswert?

die Leitungen sind flachbandkabel mit einer länge von ca. 25cm!! zu
lang??

von Benjamin (Gast)


Lesenswert?

kann mir wirklich keiner irgendwie helfen?? ich weiß nicht ob es jetzt
an den langen leitungen liegt, oder ob mein controller etwas falsches
macht, weil ich mir etwas falsches ausgedacht habe!!

von Sonic (Gast)


Lesenswert?

25 cm sollten nicht zu lange sein. Wenn Du Dich an die Befehle des Daten
blattes hältst sollte es auch gehen, die Teile sind recht einfach
anzusprechen. Ich benutze den Treiber von Jörg Wunsch, was glaub' ich
im WinAVR, bin aber nicht mehr sicher, das Teil deckt eigentlich alles
ab was Du für's Display brauchst. Wenn Du den Busy-Pin nicht
auswertest stimmen evtl. die Pausenzeiten zwischen den Befehlen nicht.

von Benjamin (Gast)


Lesenswert?

mmmmhhhh.... so ein sch....

ich bekomme dieses blöde ding nicht zum laufen!!! Jetzt habe ich schon
den ganzen rechner nach diesem genannten beispiel durchsucht..., keine
ahnung wo ich das finden kann!! vielleicht hat ja jemand vo euch einen
tip?? dann lade ich mir das beispiel mal herunter! aber damit ist mir
auch noch nicht geholfen... ich würde das gerne selber hinbekommen, nur
kann ich nicht nachvollziehen warum der controller das LCD nicht richtig
ansteuert!

danke schon mal sonic!!

Gruß

von Karl H. (kbuchegg)


Lesenswert?

Hol dir vom 'Peter Fleury' die LCD-Funktionen.
Funktionieren wunderbar.

http://jump.to/fleury

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> dann lade ich mir das beispiel mal herunter!

http://www.nongnu.org/avr-libc/user-manual/group__stdiodemo.html

Hat aber auch noch Bugs, geht so nicht mit jedem Controller.
Ist in der CVS-Version repariert.

> ich würde das gerne selber hinbekommen,

Ja klar.  Ich habe auch einige Stunden reingesetzt, das wirklich
wasserfest zu bekommen.  Worüber ich mir gerade nicht im Klaren
bin: du legst zuerst das E-Signal an, schreibst dann das Byte,
und nimmst danach E zurück.  Mir ist aber so, als würde der
HD44780 mit der steigenden Flanke von E einlesen, also müsstest
du zuerst das Byte ausgeben und dann E setzen.  So mache ich es,
ob man's so machen muss, müsste ich jetzt im Datenblatt nachlesen.

von Maik (Gast)


Lesenswert?

Kann nur Karl Heinz' Ratschlag weiterempfehlen...die Libraries von
Peter Fleury sind unschlagbar....damit kriegste das Teil idiotensicher
zum laufen!!!

von Maik (Gast)


Lesenswert?

vorrausgesetzt du hast nen  HD44780 Chip in deinem Display

von Otto Richter (Gast)


Lesenswert?

Hallo da draußen,

es stimmt, die Bibliothek von Peter Fleury ist hervorragend.

aber...

ich habe mehrere Geräte mit dem gleichen LCD (2x40 und natürlich
HD44780) von verschiedenen Herstellern/Lieferanten gebaut. Ergebnis:
mal liefen die LCD, mal nicht.

Ich bin nach einem Jahr Arbeit an dem Gerät immer noch nicht durch:

1. Die delays beim init der verschiedenen Hersteller sind
unterschiedlich und damit im Einzelfall zu kurz.

2. Die init-Routinen der einzelnen Hersteller sind unterschiedlich.

3. Man sollte ein Oszilloskop anschließen um die Signal wirklich zu
sehen

Ich glaube, die Dinger werden sehr schludrig gefertigt.

Ich habe bei einem Exemplar z.B. folgenden Effekt: Wenn die Zeichen im
Display so stehen, dass in den beiden Zeilen zwei Zeichen einen
durchgehenden Strich haben und genau übereinander stehen, also z.B.
Zeile 1 ein I und genau darunter auch ein I, dann wird das Pixel in der
Unterzeile des unteren I's sichtbar. Das Ganze nur bei einem LCD von
einem unbekannten Hersteller und einem nicht mehr bekannten
Lieferanten. Manchmal sieht man die Pixel der untersten Zeile etwas
schächer als die übrigen (regulären) Pixel.

4. Ich arbeite mit P.F's Treiber, veränderten delays und noch ein paar
Anpassungen, weil ich den READ-Pin nicht auslesen kann. Im Großen und
Ganzen laufen die Teile.

Wenn jemand da noch einen Beitrag liefern kann, nur zu, bin für alles
dankbar !

Otto

von Benjamin (Gast)


Lesenswert?

Hallo,

herzlichen Dank schon mal für die Tipps!! Ich finde es gut das Ihr mir
alle einen fertigen Treiber empfehlt, aber irgendwie scheine ich doch
zu  stolz zu sein. Ich will das Display alleine zum Laufen bekommen,
naja da scheine ich nicht um die Sache herum zu kommen mir ein Oszi zu
besorgen, bzw. zu leihen.

Hat sich vielleicht mal jemand meinen Source angesehen? Ist der denn
gut Struckturiert? Wäre dankbar für jede Kritik.
Vielleicht fällt ja doch noch jemandem etwas ein! Ich habe auch schon
versucht die Datenblätter zu diesem Display zu bekommen, aber kein
erfolg! Hat jemand einen Tipp?? Typ MC1604B-SBLW*W (steht so hinten auf
dem Display). Ich habe die Displays für je 1€ erstanden. Dafür kann man
den Versuch wagen diese mit Fleis in Betrieb zu nehmen.

Danke euch schon mal für die Kommentare, auch für die die noch
folgen!!

Gruß
Benjamin

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> Hat sich vielleicht mal jemand meinen Source angesehen?

Ja.  Aber weißt du, warum erwartest du von uns, dass wir uns
durch deinen Code durchfitzen, wenn du stattdessen doch auch
selbst die Zeit investieren könntest, und deinen Code gegen
die zwei oder drei existierenden Lösungen vergleichen?

Außerdem wäre der Vorteil, erst einmal eine erprobte Lösung
zu nutzen, dass du danach zumindest weißt, dass die Hardware
OK ist.

von Karl H. (kbuchegg)


Lesenswert?

...
und ausserdem hat der Eine oder Andere beim Durchsteppen im
Debugger durch fertigen Code schon so manches Aha-Erlebnis gehabt.

von Benjamin (Gast)


Lesenswert?

Mmmmhhhh... Sorry, ich wollte hier keinen Zwingen sich meine Sofware
anzusehen!!!

Ich habe mir jetzt einen Kostenlosen LCD- Simulator herunter geladen,
der den HD44780, im Zusammenspiel mit AVRstudio voll Simuliert. Dort
scheint es zu Funktionieren. Ich vermute ich halte die Zeiten bei dem
mir vorliegenden Display nicht ein. Damit hat sich die Sache dann für
mich erledigt, da ich kein Datenblatt mehr zu diesen Displays bekomme!

Danke aber trotzdem!!

Gruß
Benjamin

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Naja, dass die Simulatoren jedes Detail der zu simulierenden
Hardware abbildet (gerade auch Timing), kannst du nun wirklich
nicht erwarten.

von Benjamin (Gast)


Lesenswert?

tja... wenn du meinst!! ich habe es mit verschieden timings probiert!!
kürzere zeiten und es funzt net!!
also kann es nur stimmen!! naja zumindest für die HD44780 konformen!!

Gruß

von Karl H. (kbuchegg)


Lesenswert?

> kürzere zeiten und es funzt net!!

Wieso kürzere?
Längere Zeiten nehmen!

Die Zeiten sind Mindestzeiten die der Controller am LCD braucht
um zu reagieren.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Was nützt es dir, wenn es am Simulator spielt, aber nicht an
deiner realen Hardware?

von Benjamin (Gast)


Lesenswert?

@Karl Heinz Buchegger
nein ich meine kürzere!! genau das wollte ich bezwecken um zu schauen
ob der simulator auch das tut was ein lcd- controller auch tun würde.
also bei zu geringen zeiten... nichts!!! bei eingehaltenen zeiten,
sollte er reagieren!!

@Jörg Wunsch
mir nützt der simulator erst einmal in der hinsicht, das ich weiß das
mein code das tut was er soll. initialisieren, adresse ausgeben und
daten schreiben. vorallem die richtigen!! was die hardware betrifft da
habe ich schon geschrieben das ist ein altes lcd. ich werde mir ein
aktuelles besorgen, von dem ich noch ein datenblatt bekomme und dann
werde ich an der schaltung und software pfeilen bis es passt!! ganz
einfach!! ich wollte nur wissen ob ich auf dem richtigen weg bin. und
dafür ist das einfach ein geniales tool! denn ich habe nicht nur das
lcd sondern, led´s, tasten und ein tastenfeld. damit kann man schon
einiges simulieren und alle ports sind im simulator frei einstellbar.
das heißt ich kann ganze projekte auf meinem rechner simulieren ohne
einmal den code auf den controller schieben zu müssen!! ich sehe ein
das auch dies sein muss, weil der controller "vielleicht" anders
reagiert, aber man kann auf jedenfall die software in gewisser weise
vortesten. Ich weiß nicht was daran falsch sein soll!?
Das erklär mir doch mal bitte!! für SPS- steuerungen macht man das doch
auch!! dort kann man ganze produktionsstraßen mit tools simulieren!! man
passt mal hier mal da noch ein timing an, aber der größte teil ist
fertig, bevor die produktionsstraße steht!!

Gruß
Benjamin

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> Ich weiß nicht was daran falsch sein soll!?

Deine Interpunktionen sind es auf jeden Fall.

Worauf ich hinaus wollte, ist ganz einfach: dein Beispiel beweist
recht eindrucksvoll, dass eine funktionierende Simulation eben
nur sowas wie virtuelle Realität ist.  Wenn es funktioniert, ist
es ganz hübsch, aber deshalb noch lange nicht notwendigerweise
praxistauglich.  Deine Problem, dieses bestimmte LCD zum Laufen
zu bekommen, hast du dich damit noch kein Stück genähert.

von Karl H. (kbuchegg)


Lesenswert?

> @Karl Heinz Buchegger
> nein ich meine kürzere!! genau das wollte ich bezwecken um zu
> schauen ob der simulator auch das tut was ein lcd- controller auch
> tun würde.
> also bei zu geringen zeiten... nichts!!! bei eingehaltenen zeiten,
> sollte er reagieren!!

Ah. Du redest vom Simulator, ich vom realen LCD.
Klarer Fall von: aneinander vorbeigeredet.

von Thomas P. (gonzo)


Lesenswert?

nur mal so ne dumme frage am rande. Die Fuse Bits für Externen Takt sind
richtig gesetzt ja?

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
Noch kein Account? Hier anmelden.