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
Wie lange und welcher Art sind die Zuleitungen zum Display? Evtl. hast Du Antennen gebaut?
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!!
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.
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ß
> 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.
Kann nur Karl Heinz' Ratschlag weiterempfehlen...die Libraries von Peter Fleury sind unschlagbar....damit kriegste das Teil idiotensicher zum laufen!!!
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
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
> 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.
... und ausserdem hat der Eine oder Andere beim Durchsteppen im Debugger durch fertigen Code schon so manches Aha-Erlebnis gehabt.
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
Naja, dass die Simulatoren jedes Detail der zu simulierenden Hardware abbildet (gerade auch Timing), kannst du nun wirklich nicht erwarten.
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ß
> 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.
Was nützt es dir, wenn es am Simulator spielt, aber nicht an deiner realen Hardware?
@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
> 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.
> @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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.