Hallo, Ich habe ein Problem beim Ansteuern eines 16x4 Displays(Lcd 164A). Angeschlossen ist das Display an den Port A vom ATMega32. Die Pinbelegung ist: RS =PA4 R/W ist an Gnd angeschlossen . E =PA5 DB4 =PA0 DB5 =PA1 DB6 =PA2 DB7 =PA3 PA6 und PA7 sind offen. Beim Einschalten wird in der ersten und dritten Zeile ein schwarzer Balken angezeigt, die anderen beiden Zeilen sind leer. wenn die das Programm starte, verschwinden zwar die beiden Balken.Sonst passiert nichts. Den Quellcode und den Schaltplan habe ich als ZIP Datei angehängt. Ich hoffe es kann mir einer von euch bei meinem Problem helfen. Danke im Voraus Gruß
Dass die Balken verschwinden ist schon mal gut ... Hast Du die Kontrastspannung richtig eingestellt? Manche LCDs wollen auch eine leicht negative Spannung ...
Kay Imperator schrieb: > Dass die Balken verschwinden ist schon mal gut ... das bedeutet genau dass der LCD initialisiert ist also ist auf alle Fälle ok! Kay Imperator schrieb: > Hast Du die Kontrastspannung richtig eingestellt? > Manche LCDs wollen auch eine leicht negative Spannung ... hmmm... wenn beim Einschalten in der ersten und dritten Zeile ein schwarzer Balken angezeigt wird dann muss du der Kontrastspannung bzw. der 10K Poti (nehme ich mal an) etwas drehen bis du was siehst! Negative Spannung ist hier ja nicht der Fall da du schon die " schwarzer Balken" siehst
Hi, danke für die schnelle Antwort. ja ich drehe an den Poti wie ich will, passiert aber leider nicht. Ich muss sagen. Der lcd hat schon mal was gezeigt. Aber seit ich mit angeschlossen LCD geflasht habe, zeigt er nichts mehr.
was für Board hast du? was für Proger hast du? nimmt mal der Proger Mal raus und guck was passiert? manchmal zieht er Strom vom Board und passieren so seltsame Sachen am LCD "das habe ich hier im Forum gelesen"
Kann auch ein Timing-Problem sein, nach dem Hochfahren der Spannung musst Du eventuell eine Weile Warten, bis die Kommandos richtig verarbeitet werden können. Nutzt Du die Busy-Signalisierung? Nochmals zum Kontrast: Ich hatte es schon, dass vor Initialisierung schwarze Balken da waren, nach Init. hat der Kontrast nicht mehr ausgereicht, um alle Display-Segmente zu versorgen -> Kontrast wird dann schwächer.
Der Programmer ist immer raus, wenn der LCD angeschlossen ist. Auch mit warten bringt das nicht. Der LCD hat schon mal was gezeigt, allerdings zeigt er alles in der Zeile eins Pos eins.
Hallo Musti, probiert mal mit folgendes LCD Code von Peter Dannegger: www.mikrocontroller.net/topic/174303#1672233 das ist der einzige Code wo ich oder besser gesagt wo BEI MIR auf Anhieb funktioniert hat mit andere Code mußte ich hier und dort apassen, da gucken und und und, das beste an den Code ist dass man alle Pins anpassen kann (Datei main.h)! Gruß
Leider ist das Verhalten immer nich das gleiche. Eine Frage bei mir ist die R/W an Gnd angeschlossen, Gnd entspricht Pin 8 an Port A. leider kann ich das nicht in meinen Programm anpassen, weil in io.h nur 7 Pins hier gibt. kann jemand was dazu sagen? danke
Musti Maroane schrieb: > bei mir ist die R/W an Gnd angeschlossen, Gnd entspricht Pin 8 an Port > A. Kannst Du das genauer ausführen? Vielleicht gibt das nur für mich keinen Sinn, aber - R/W kann entweder an GND angeschlossen sein oder an einem Port, und - PIN 8 des Mega32 ist nicht Port A, und wenn BIT gemeint ist, gibt es 8 nicht.
Ah Sorry. Also: Der LCD ist an einen 10 Poliger Stecker angeschlossen. Pin 1 bis 7 (10 Polig) entspricht PA0 bis PA7 von Atmega32. Gnd ist Pin 9 und Vcc ist Pin 10(10 Polig). Die R/W ist an Gnd angeschlossen also an Pin 9 von (10 Polig Stecker). Das Programm will aber wissen, wo der R/W angeschlossen ist. welchen Wert im Programm soll ich R/W geben? Z.B RS =PA4 E =PA5 R/w = ? Gruß
Wenn das Programm wissen will, wo R/W liegt, musst Du R/W entweder an ein passendes Port anschließen oder ein anderes Programm verwenden. Eine andere Wahl hast Du nicht. Hintergrund: Ein LCD-Treiber-Programm kann darauf verzichten, vom LCD zu lesen. Es ersetzt dann die Busy-Abfrage (Abfrage, ob der Controller auf dem LCD bereit ist) durch vergleichsweise üppig bemessene Zeitschleifen und R/W kann dauerhaft auf GND bleiben. Dann aber wird der R/W-Pin nirgends im Programm auftauchen. Tut er es doch, hast den Typ von Programm erwischt, der Busy abfrägt und dann braucht das Programm R/W. Kannst Du ihn nicht anliefern, musst Du ein anders aufgebautes Programm verwenden.
Musti M. schrieb: > Die R/W ist an Gnd angeschlossen also an Pin 9 von (10 Polig Stecker). > Das Programm will aber wissen, wo der R/W angeschlossen ist. > welchen Wert im Programm soll ich R/W geben? hallo, hatte mal ein ähnliches problem mit einem 4-zeilen-LCD unter bascom. es ging und ging und ging nicht, bis ich R/W statt an masse über einen 1K-widerstand an +5V angeschlossen habe.
Dann hatte das LCD einen anderen Controller oder es war schlicht und einfach kaputt. Wenn R/W=1 ist, kann nämlich nichts in den Controller geschrieben werden.
Hc Zimmerer schrieb: > Dann hatte das LCD einen anderen Controller oder es war schlicht und > einfach kaputt. Wenn R/W=1 ist, kann nämlich nichts in den Controller > geschrieben werden. würde mich jetzt mal näher interessieren. habe das display leider eingebaut und fest verlötet, dass ich im moment nicht ohne weiteres nachschauen kann, welchen controller es hat
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.