Liebe Alle, ich habe vor den Schritt in die LCD-Welt zu tun und stolpert nun bereits vor dem ersten Schritt. Ich habe mir von Pollin folgendes LCD besorgt: http://www.pollin.de/shop/dt/NzgyOTc4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Optoelektronik/LCD_Modul_DM19264A_02_192x64_Pixel.html Datenblatt: http://www.pollin.de/shop/downloads/D120712D.PDF Softwareseitig werde ich es mit einer der beiden passenden Libs aus der Codesammlung angehen. Nun sitze ich vor dem Steckboard und mir stellen sich ein paar Fragen die ich bislang mithilfe der Forumssuche nicht (zumindest nicht für dieses LCD) beantworten konnte: Die Kommunikationspins 4-18 sind mir soweit erstmal verständlich. Vss (Pin1) und Vdd(Pin 2) sind auch klar. Frage 1: Vo (Pin3) ist laut Datenblatt die Kontrastspannung - ich finde jedoch keinen Hinweis darauf in welchem Bereich ich diese bereitstellen muss? Frage 2: Vee (Pin 19) ist laut Datenblatt ein Negative Voltage Output (-5V oder -10V) - was stell ich damit an?! Frage 3: A (Pin 20) soll mit 4.2 V betrieben werden (soweit mir das verständlich ist mit entsprechendem Vorwiderstand - ist ein solcher nicht vorhanden wird der Spannungsregler 7805 innerhalb meiner 5V-Spannungsversorgen gehörig heiß - derzeit mal 10 Ohm drinne). Richtig? Die Spannungsversorgung läuft mit einem Netzteil (9V / 1000 mA) und wird mit der Spannungsversorgungsschaltung des Tutorials auf 5 V geregelt. Jemand ein paar Hinweise oder einfach nur Literaturempfehlungen? Ich suche gerne selber weiter, stehe nur gerade etwas ratlos da. Viele Grüße Karlo
Karlo F. schrieb: > Frage 1: > Vo (Pin3) ist laut Datenblatt die Kontrastspannung - ich finde jedoch > keinen Hinweis darauf in welchem Bereich ich diese bereitstellen muss? V_O = V_DD-15V bis VDD+0.3V (irgend was dazwischen auswählen bis der Kontrast passt) > Vee (Pin 19) ist laut Datenblatt ein Negative Voltage Output (-5V oder > -10V) - was stell ich damit an?! Die Kontrasspannung ist wahrscheinlich negativ....
Hi >Frage 1: >Vo (Pin3) ist laut Datenblatt die Kontrastspannung - ich finde jedoch >keinen Hinweis darauf in welchem Bereich ich diese bereitstellen muss? >Frage 2: >Vee (Pin 19) ist laut Datenblatt ein Negative Voltage Output (-5V oder >-10V) - was stell ich damit an?! Poti (10...20K) zwischen *VDD (5V)* und VEE. Potischleifer an den Kontrasteingang. Der Kontrasteingang muss lt.Datenblatt etwa 9V negativer als VDD sein. MfG Spess
>Frage 1: >Vo (Pin3) ist laut Datenblatt die Kontrastspannung - ich finde jedoch >keinen Hinweis darauf in welchem Bereich ich diese bereitstellen muss? > >Frage 2: >Vee (Pin 19) ist laut Datenblatt ein Negative Voltage Output (-5V oder >-10V) - was stell ich damit an?! Du nimmst einen 20k Trimmer und schliesst den folgendermassen an: Schleifer des Trimmers an Vo Den Rest des Trimmers an VEE und GND. Dann kannst du deinen Kontrast mit dem Trimmer einstellen.
Zu 3. das ist der Anschluss der LED's, sind daher auch als solche zu behandeln. 4,2V ist die Duschbruchspannung der LED's ! Im Datenblatt ist leider keine Angabe über den Max. Strom der LED's Halten aber sicher mehr als 200mA aus und mit dem Strom sollten sie auch ausreichend hell sein. Du könntest also noch bis auf 4Ohm runter gehen, wenn Du's noch heller brauchst
Manfred John schrieb: > 4,2V ist die Duschbruchspannung der LED's ! Sicher? Meinst du zufällig die Flusspannung?
Vielen lieben Dank! Ich konnte bisher noch nicht antworten, da ich die Zeit genutzt habe um noch den Conrad zu erreichen um den Poti zu besorgen :) Werde jetzt noch kurz ne Platine ätzen und dann den LCD wie von euch vorgeschlagen beschalten. Besten Dank und viele Grüße
Wie ist denn die Qualität der Anzeige und die Beleuchtung? Kann man das Pollin-Display nutzen?
Was den Kontrast betrifft, so ist das doch eine leichte Sache: Das Display liefert an Pin 19 eine Spannung. Da schließt du ein Ende eines Einstellreglers an. Das andere Ende kommt auf Masse und der Schleifer kommt an Pin 3. Aber das Display ist aus meiner Sicht viel ekliger als ich es mir zumuten würde, denn es hat den Bildschirm vermutlich in 3 Teile und 3 verschiedene Chips aufgeteilt. Dazu Pins 15+17+18 igitt, 3 verschiedene ChipSelects und das Ganze noch dazu 10 Euro teuer... W.S.
Hi > Da schließt du ein Ende eines Einstellreglers an. Das andere Ende kommt >auf Masse und der Schleifer kommt an Pin 3. Die LCD-Versorgungsspannung, gemeinhin als Kontrastspannung bezeichnet, ist auf VCC (+5V) und nicht auf Masse bezogen. Also gehört der Potianschluss dort hin. MfG Spess
W.S. schrieb: > es hat den Bildschirm vermutlich in 3 Teile und 3 > verschiedene Chips aufgeteilt. Dazu Pins 15+17+18 igitt, 3 verschiedene > ChipSelects Es hat ja auch 192 Pixel Breite. Wie willst Du sonst ein Display ansteuern, wenn der Spaltentreiber je 64 Spalten kann. Die 128 Pixel breiten Displays haben doch auch 2 Chips als Spaltenntreiber... Mir ging es eher darum, ob das Display gut ablesbar ist oder vielleicht Schwächen bezüglich ungleichmäßiger / verschwommener Pixel oder schlechten Kontrast hat.
Soooo, arbeitsbedingt bin ich leider erst heute dazu gekommen an dem LCD weiterzubasteln. Über die Quali des LCD kann ich derzeit leider noch nichts sagen, da ich noch nichts zum laufen bekommen habe. Ich habe aber immernoch die Kontrastspannung in Verdacht. Mein bisheriger Stand: Habe wie oben vorgeschlagen die Kontrastspannung über nen Trimmer (20kOhm) zwischen Pin 19 (Vee, negative voltage Output) und GND (testweise auch mal +5V) im Betrieb. Softwareseitig kommt myLCD aus der Codesammlung in Einsatz (steuert zwar nur 2 Controller an und hier sind es 3 - aber ich dachte den dritten nehme ich dann in Angriff wenn ich auf dem Display was sehen kann ;) ).Commandports habe ich über Register A laufen, die DataBusLines sind auf C. Ergebnis: Nichts zu sehen außer dem normalen Backlight. Nun habe ich an Pin19 mal gemessen was da rauskommt und meine Messanzeige sagt mir: 0V. LCD Board hinüber oder dummer Anwendungsfehler?
Egal, ich hab noch nen Max233 rumfliegen, mal gucken ob ich mit dem testweise eine negative Kontrastspannung hinbekomme!
Kannst du ein Foto von dem Display einstellen (Vorder und Rückseite)? Ansonsten, ICL7660, zwei 10µ Kondensatoren, fertig, vielleicht ist ja dafür sogar schon alles vorgesehen auf dem Display. MfG BC
Moin, anbei die Fotos - genügen die? Habe die richtige Kamera leider erst morgen zur Verfügung. Pin19 ist hervorgehoben. Meine Messung an dem ME7660 (der auf der Platte verbaut ist, den entsprechenden Bereich habe ich größer noch aufgenommen) ergab an Vout -2,7 V. Ich versteh nur nicht wie da überhaupt was auf Pin19 angekommen soll, für mich sieht es so aus als wäre die Leiterbahn vorher unterbrochen. Grüße Karlo
Das Problem liegt wohl eher an deiner Löttechnik ! Da brauchst Du Dich nicht zu wundern das nix funst. Man sieht sogar zwei Litzen die eine Brücke bilden. (Port Mitte) Verlöte das noch mal anständig bevor Du den Fehler an Anderer Stelle suchst. MfG Manfred
Kritik dankend angenommen, Lötbrücke mittlerweile korrigiert. Leider ergibt sich daraus kein Unterschied. Zur Klarstellung: ich beschwere mich nicht dass das LCD nicht läuft (da ich bei meinem Talent durchaus noch ca 10² andere Gründe in Verdacht habe) - aber Pin 19 sollte doch im "Rohzustand" und bei lediglichen Anlegen der Versorgungsspannung über die Ladungspumpen nen negativen Output haben - oder täusche ich mich? Viele Grüße
Vergiss das erst mal mit Pin19, eine negative Spannung an Vo brauchst Du bei normaler Temperatur (~15-30C°) nicht, da reichen 0-5V Eventuell ist bei Deinem Modell die Ladungspumpe für die Negativespannung gar nicht implementiert ?!
Hi >Ich versteh nur nicht wie da überhaupt was auf Pin19 angekommen soll, >für mich sieht es so aus als wäre die Leiterbahn vorher unterbrochen. Sieht abgerissen aus.
Hi
Zu schnell gedrückt.
>Eventuell ist bei Deinem Modell die Ladungspumpe für die
Negativespannung gar nicht implementiert ?!
Ist implementiert. U1 ist ein 7660. Am Pin5 sollte eine negative
Spannung anliegen.
MfG Spess
Genau, der 7660 sollte etwa -5V erzeugen (je nach Schaltung). An Pin 5 können diese abgegriffen werden. Von pin5 (7660) zu Pin 19 (Anschluss) muß eine Verbindung bestehen (sieht nämlich wirklich aus wie abgerissen). Der KS0108 braucht definitiv eine negative Spannung um daraus den Kontrast zu generieren. Da reichen 0V nicht aus. MfG BC
...habe mir ebenfalls dieses Display zugelegt und werde in den nächsten Tagen wohl eine Reihe Fragen dazu stellen müssen, aber zuerst mal eine Anmerkung: Bei meinem Exemplar fehlt ebenfalls jedwede Verbindung zu Pin 19 (zumindest was meine optische Widergabefähigkeit mir vorgaukelt), aber es sieht nicht so aus, als wäre es abgerissen, sondern als wäre das schlichtweg nicht geroutet worden... die Leitung hört einfach plötzlich auf, und das Display ist noch in der originalverschweißten Folie von Pollin! Nun stellt sich mir natürlich die Frage, wie mit diesem Pin umzugehen ist... Kann das Display dann überhaupt funktionieren? PS.: Da U2 nicht bestückt ist, muss ich wohl davon ausgehen, dass dort nur -5V zu erwarten wären, und wenn ich U2 noch nachbestücke könnteich auf -10V kommen? mfg
Hi >Nun stellt sich mir natürlich die Frage, wie mit diesem Pin umzugehen >ist... Kann das Display dann überhaupt funktionieren? Wenn das Layout wie auf den Bildern von Beitrag "Re: LCD DM19264A (KS0108B Controller)" aussieht, dann war da mal eine Verbindung da. Vielleicht sind die GLCDs von Pollin mal auf eine externe Kontrastspannung 'umgebaut' worden. Mess mal die Spannung an PIN5 von U1. Wenn dort ca. -5V anliegen, dann verbinde die mit dem Pin 19 vom LCD. MfG Spess
Hihi, jetzt haben die auch bei Pollin gemerkt, dass da was fehlt: Das Display ist billiger geworden. Läuft es schon bei jemanden?
Ich hab mir auch dieses Display zugelegt und Probleme mit der Beschaltung. Nachdem ich dann diese Beiträge hier gefunden habe, habe ich mal intensiver durchgemessen. Bei mir ist ebenfalls PIN19, welcher die neg. Spannung liefern sollte unbeschaltet (gemessen) optisch genau wie auf den Bildern oben.. Pin5 des 7660 liefert -5V, welche aber nicht weiter geführt werden. jetzt versuche ich erstmal dort was anzulöten um sie weiter nutzen zu können .. hoffe, das reicht dann, um die beschaltung zu vervollständigen
in anderen foren habe ich nun infos gefunden: Pin19 ist wirklich unterbrochen, man muss also selber hand anlegen und pin5 von U1 an Pin19 verbinden. bei einigen display ist es sogar vorgekommen, das der masseanschluss fürs backlight (K) nicht gelötet ist ... (an der seite der displayplatine) .. dort auch manuell ergänzen. nachdem ich diese hürden überwunden hatte, bin ich immer noch am experimentieren ... bekomme z.b. keinen vernnümftigen kontrast hin ... aber immerhin sind schon mal die "pixel" erkennbar ... zum zweiten habe ich noch keine lauffähige software für dieses display finden können ,,, etliche ausprobiert, aber erfolglos ... hat jemand was grundlegendes da, was auf nem 18f läuft und in c18 geschrieben ist?
Display läuft mit folgenden Änderungen: Pin 19 an Pin 5 des 7660 verbunden für die negative Kontrastspannung K der Displaybeleuchtung mit GND verbunden Bei 100mA für die Displaybeleuchtung ist es noch sehr dunkel, wahrscheinlich müssen da 200mA fließen. Die CS-Leitungen sind low-aktiv. Die Init-Sequenz ist wie im Datenblatt des KS0108 angegeben sehr einfach, ohne zusätzliche Delays. Beim Schreiben werden die Daten auf die fallende Flage von Enable übernommen, die Daten müssen noch ein paar ns danach anliegen, also 3 NOPs zwischen ENABLE low und Datenwechsel. ABER: Eine sehr unschöne Sache ist, dass der Kontrast extrem von der Anzahl der dargestellten Pixel abhängt. Beim Einschalten sind alle Pixel ein, also das Display dunkel. Ich stelle einen guten Kontrast bei ungefähr -4.2V ein. Ich schreibe ein Muster auf das Display, pro Spalte wird der Wert einfach inkrementiert. Je mehr Zeichen geschrieben werden und damit helle Pixel auftauchen, desto schwächer wird der Kontrast der dunklen Pixel. Ist das Display gleichmäßig mit einem Muster gefüllt, muss ich den Kontrast auf -4.8V einstellen, um wieder einigermaßen was zu sehen. Schreibe ich jetzt wieder ein fast gefülltes Display, kann ich bei den -4.8V die hellen und dunklen Pixel kaum unterscheiden. Die Betriebsspannung ist konstant 5V, die Kontrastspannung ist konstant, egal wie viele Pixel erscheinen. Nur der Kontrast ist extrem von der Anzahl der dargestellten Pixel abhängig. Kennt jemand das Phänomen? Kann man das beheben? Gibt es diesen Effekt auch bei anderen G-LCD? Oder ist der KS0107 (Zeilentreiber) mit den 192 Pixeln pro Zeile einfach überfordert?
Ergänzung: Das Kontrastproblem scheint nicht von der Anzahl der Pixel abzuhängen, sondern von deren "Durchmischung". Ich schreibe in alle Stellen das gleiche Pattern: 0b00000001 => guter Kontrast 0b00000011 => guter Kontrast 0b00001111 => guter Kontrast 0b00010001 => schlechter Kontrast 0b01010101 => sehr schlechter Kontrast 0b01111111 => guter Kontrast Das wirkt sich immer relativ gleichmäßig auf das ganze Display aus, auch wenn ich nur die Hälfte mit 0b01010101 beschreibe. An der Anzahl der Spalten scheint es nicht zu liegen. Wenn ich einen der 3 Spaltentreiber abschalte, bleibt der Kontrast trotzdem mies.
...gleich mal eine Frage zwischendurch: Hab das Display mitlerweile angeschlossen, allerdings erstmal ohne Backlight (relevant?). Ein Programm ist noch nicht zusammengeflickt, ich wollte erstmal nur testen, ob überhaupt irgendetwas erscheint. Nun geschieht folgendes wenn ich die Spannungsversorgung einschalte: Bei einer Spannung von 9,7V zwischen Pin 2 und Pin 3 (Poti am Anschlag) sehe ich die Pixel ganz ganz schwach erscheinen. Drehe ich das Poti weiter in die andere Richtung, wird der Kontrast noch schwächer, so dass ich quasi garnichts sehe... Achja: Die Versorgung geschieht über den 232RL von FTDI. Nun erstmal die erste Frage: Kann ich hoffen, dass der Kontrast bei einem vernünftig "enable-ten" Display besser wird, oder ist der schwache Kontrast eher ein Hardwareproblem? Zweite Frage: Was kann ich denn sinnvolles tun, um den Kontrast noch weiter zu erhöhen? Die Verbindung zu Pin 19 habe ich bereits hergestellt, um die negative Spannung nutzen zu können... mfg
Wenn Du dem Display keine Daten schickst, ist es erstmal aus. Da bringt am Kontrast drehen nicht viel. Du musst alle 3 KS0108-Controller erstmal einschalten. Dann sind alle Pixel beschrieben und das Display zeigt schwarz. Dann kannst Du die Adressen ändern und Pixelmuster rüberschieben. Also ohne Controller nix los. Und /Reset muss auf High liegen, sonst auch nix los.
ah ok, aber merkwürdig finde ich das trotzdem, weil bei den "nomalen" alphanumerischen Displays konnte ich bisher "ausgeschaltet" am Kontrast drehen und damit schonmal die Schriftstärke definieren, ohne eine einzige Zeile Code produziert zu haben...
>ah ok, aber merkwürdig finde ich das trotzdem, Daran ist nichts merkwürdig. >weil bei den "nomalen" alphanumerischen Displays Grafikdisplays sind halt anders.
Hallo, wenn die vollen -5 V anliegen, ist der Kontrast ohne jede sonstige Ansteuerung hoch genug, um die Struktur gut zu erkennen. Man sieht dann praktisch die 'Zwischenräume' zwischen den Pixels. Die Ansteuerung (inzwischen auf Stufe 'beliebiges Pixel setzen' usw.) ist soweit fertig, aber wegen der drei Controller doch etwas umständlich. Der Kontrast reicht mir jedenfalls. x
habs mittlerweile auch halbwegs zum laufen bekommen ,,, das mit den LOW-Actice Chip-signalen hat mich auch einige stunden gekostet^^ Was den kontrast angeht, muss ich sagen, das ich da nicht behaupten könnte, das kontrast abhängig von anzahl der dargetsellten pixel abhängig ist. sieht bei wenig und bei sehr hoher anzahl dargestellter pixel gleich aus. die Hintergrundbeleuchtung hängt bei mir per 8Ohm vorwiderstand an VDD (5V). Kontrast steht bei mir bei rund -4,65V [pin19] <-> [POTI 10k] <-> [VSS] / Schleifer auf [PIN3] ala Datenblatt Ansteuerung, Ausgabe von grafiken hab ich nun auch hin bekommen. nun hapert es nur noch an das einbinden einer Schriftart. bzw. an das ausgeben von beliebigen text .. bin da noch nicht durchgestiegen, was die codierung betrifft.. kann mir einer die grundlagen kurz erläutern? Fonts habe ich mitlerweile viele. nur das ausgeben funzt nicht
du muss aufpassen das du den richtigen Font hast, da beim KS0108 das Datenbyte im Displayspeicher senkrecht dargestellt wird, bei den meisten anderen Controllern aber waagerecht! Mit dem falschen Font wirds schwierig. Sascha
ah,, gut zu wissen, danke für den tipp (wusste nicht, das andere controller das waagerecht darstellen) aber soweit bin ich ja noch nicht ,,, momentan zeigt es garnix an... hab probleme mit rom char / oder static rom char ect .. bin mir über den daktilus noch im unklaren die meißten codebeispiel sind für AVR und oder anderen Prog-Sprachen ... ich nutze C18 und habe eig. nicht vor, andere sprachen oder Controller zu lernen, um den code dann für mich ins c18 für PIC18 zu übersetzen
Hi >du muss aufpassen das du den richtigen Font hast, da beim KS0108 das >Datenbyte im Displayspeicher senkrecht dargestellt wird, bei den meisten >anderen Controllern aber waagerecht! Welche 'meisten' ?. Ich habe gerade meine Datenblattsammlung durchgesehen. Gefunden habe ich außer dem T6963 nur noch den HD61830 mit 'waagerechter' Anordnung. Also ist es eher anders herum. MfG Spess
>habs mittlerweile auch halbwegs zum laufen bekommen ,,, das mit den >LOW-Actice Chip-signalen hat mich auch einige stunden gekostet^^ Bei meinen KS0108 Displays sind die High Active. Bei deinem Display laut Datenblatt auch.
es geht hier aber speziell um das LCD DM19264A (KS0108B Controller) => Low Active
>es geht hier aber speziell um das LCD DM19264A (KS0108B Controller) => >Low Active Quark Low Active. Im Datenblatt steht z.B. /RST. Das ist der Reset Pin. Der ist Low Active. Dort steht nirgendwo /CS1 sondern CS1. Ergo High Active. Würde mich auch wundern wenn es anders wäre.
das display liegt neben mir und die CSx eingänge sind definitiv low activ beim LCD DM19264A Im mitgelieferten Datenblatt steht bei mir auch nix von /CSx ... dennoch muss ich sie per Low aktivieren ...
Die sind low aktiv, ich bin drauf gekommen, weil es in einem anderen DB zu einem KS0108-Display als /CS drinstand. Hat jemand schöne Fonts / eine Fonteditor für GLCDs? Die Seite apetech scheint nicht mehr benutzt zu werden. Der GLCD FontCreator2 läuft bei mir (WinXP) nicht, keine Ahnung warum.
Nach eingehenden Tests muß ich leider alle Ergebnisse von Timm Thaler bezüglich des Kontrasts komplett bestätigen. Die Auswirkungen sind echt EXTREM! Eine Erklärung dafür habe ich nicht. Sonst jemand??? Und ja: /CS, das war ja das erste, was ich überhaupt herausfand!
Meine Vermutung war, dass es an einer möglichen Belastung der Kontrastspannung liegt. Die bleibt aber konstant.
Gibt es schon neue Erkenntnisse? Hab das Teil gestern erhalten. Leider habe ich den Thread hier erst nach der Bestellung des Displays gesehen. :-(
Bin derzeit nicht vor Ort - ansonsten will ich bei Gelegenheit die Spannung bzw. den Strom zu Pin 3 (Kontrast) oszilloskopieren, um zu sehen, ob diese Art von 'verteilten Pixels' (00010001b, 01010101b 10101010b usw.), die die größten Probleme machen, da zu irgendwelchen Schwingungen führen. Andernorts war auch die Rede davon (bezog sich auf ein anderes Display), die Kontrastspannung grundsätzlich über eine Transistorstufe zuzuführen, statt direkt per Poti-Schleifer...
Die Kontrastspannung ist hier konstant, da wird sich nichts tun. Es gibt auf dem Display Platz für einen zweiten 7660, sowie eine Lötbrücke. Vielleicht kann man damit was anfangen. Ansonsten sind die Displays zwar schön groß, aber so eigentlich nicht zu gebrauchen. Und zurückschicken geht natürlich auch nicht, weil man ja eine Steckerleiste oder Kabel anlöten muss, um rauzufinden dass es Schrott ist. Ich hätte ja vermutet, dass der Zeilentreiber KS0107 einfach bißchen schwach für 3 x 64 Pixel pro Zeile ist, aber der Effekt ist der gleiche, wenn man nur 2 der 3 Spaltentreiber einschaltet.
Hallo, habe das Display auch gerade am Start und kann die Kontrastprobleme nachvollziehen. Allerdings habe ich einen Ansatz gefunden, wie man diesen Effekt minimieren kann. Ersetzt R8:56kOhm durch 82kOhm. Dies reduziert die Taktrate des Zeilentreibers und somit werden auch die Wischeffekte reduziert. Bei Bedarf kann man R8 noch hochohmiger gestalten, solange bis das Display zu flimmern beginnt. Optimalen Kontrast bietet das Display übrigens bei Betrachtung aus der "6-Uhr-Position".
es ist zwar mein erstes GLCD aber dennoch kann ich sagen, für den preis bin ich zu frieden (7 €) ... die größten hürden konnte ich nun auch bewältigen, und fast alles klappt (grafiken / text ect...) nur das auslesen des Rams bereitet mir noch sorgen. ich benötige, um einen ladebalken mit integrierter textanzeige realisieren zu können, eine brauchbare read routine ... das Datenblatt gibt leider nicht viel infos her und getestete routinen aus anderen GLCD projekten / libs funktionieren nicht. hat jemand erfolgreich die daten asu dem GLCD ram lesen können? Meine aktuelle vorgehensweise: RS + RW auf High chip auswählen einmal E togglen ( -> 1 -> 0) byte lesen nochmal E toggeln nochmal byte lesen laut datenblatt muss man 1x dummy lesen ,, leider bekomme ich als ergebnis immer das selbe raus (0x7D), egal welche page und y-pos ich wähle
Mal die Wartezeiten zwischen RS - En ein - En aus verlängert? Mal probiert, die Daten bißchen später auszulesen? Im Datenblatt sind da bestimmte Zeiten vorgegeben, die man warten muss. Mal was anderes: Prinzipiell beim Beschreiben von GLCD, sollte man das Busy-Flag auslesen oder die Daten einfach zeitkonstant senden? Kann es sein, dass das Auslesen des Busy-Flag durch den zusätzlichen Zugriff länger dauert, als wenn die Daten kontinuierlich mit Pause geschrieben werden?
bei den wartezeiten hab ich schon von 2µs - 40ns alles probiert busy lese ich nur vor dem schreiben
Timm Thaler schrieb: > Mal was anderes: Prinzipiell beim Beschreiben von GLCD, sollte man das > Busy-Flag auslesen oder die Daten einfach zeitkonstant senden? Kann es > sein, dass das Auslesen des Busy-Flag durch den zusätzlichen Zugriff > länger dauert, als wenn die Daten kontinuierlich mit Pause geschrieben > werden? Grundsätzlich kann man auch ohne Busy arbeiten. Da jedoch jedes LCD mit einer etwas anderen Taktrate arbeitet und die Busy-Zeiten dadurch ebenfalls etwas variieren, muss man genug Reserve einplanen, wenn man ohne Flagabfrage schreibt. Daher wird dies etwas langsamer sein. Im Grenzbereich sind beide Verfahren etwa gleich schnell. Ohne Busyflagabfrage braucht man etwas weniger Code. Außerdem kann man im Write-Only-Mode das Display über Schieberegister betreiben, wenn man nicht genügend Pins am Controller frei hat. Gero Nimo schrieb: > hat jemand erfolgreich die daten asu dem GLCD ram lesen können? > > Meine aktuelle vorgehensweise: > > RS + RW auf High > chip auswählen > einmal E togglen ( -> 1 -> 0) > byte lesen > nochmal E toggeln > nochmal byte lesen Sollte funktionieren. Schaltest Du auch die Pins im Controller um? Liest Du das PIN-Register (nicht PORT)? Die Daten sind übrigens zu Lesen, wenn E das 2. Mal high ist.
Problem eliminiert :) hatte eine doppel-deklaration des RS pins (was bei einigen auch als DI beschrieben ist) damit ist er wohl beim lesen nicht zurecht gekommen, beim schreiben war das "störend"
1 | char data_read(void) |
2 | {
|
3 | unsigned char zustand; |
4 | busy(); |
5 | glcd_tris = INPUT; |
6 | RW = 1; |
7 | DI = 1; |
8 | |
9 | e_togg(); |
10 | delay_us(2); |
11 | E = 1; |
12 | zustand = BSY; //BSY => #define BSY PORTD |
13 | E = 0; |
14 | glcd_tris = OUTPUT; |
15 | return zustand; |
16 | }
|
Falls es noch von Interesse ist, unter http://www.jrdlcd.com/uploadfile/2011050918255099096.pdf findet man ein Datenblatt aus dem auch die Polarität der CS Signale eindeutig ersichtlich ist.
Man kann auch die Pins der Chips auf dem Board zählen. Wenn man sich das Pinning vom KS0108 ansieht, wird man feststellen, dass die negierten CS-Pins angeschlossen sind. Man könnte aber auch den Anwendern glauben, die das Display schon erfolgreich getestet haben ;-)
Hallo, mit Interesse habe ich das Thema verfolgt und bin auch selber aktiv geworden. Das Foto zeigt mein Display angeschlossen an ein Pollin Evaluationsboard, das Programm beruht auf der Library von http://en.radzio.dxp.pl/ks0108/ und ist auf die 192 Spalten und den Atmega16 mit 16 MHz angepaßt. Mein main.c entstammt dem Beispiel für den STM32 MCU auf der gleichen Homepage und ist etwas angepaßt und um die Grafikaufrufe erweitert. Der Vogel ist das Wappentier von meinem Heimatdorf und 16x16 Pixel groß. Da dies bisher meine einzige Anzeige ist, konnte ich noch keine Kontrastprobleme feststellen. Pinbelegung Display/ATMEGA16: 1 GND 2 +5V 3 Schleifer von Poti zwischen +5V und Vee (Pin 19 angeschlossen) 4 PB0 (D/I bzw RS 5 PB1 (RW) 6 PB2 (E) 7 PD0 (DB0) ... 14 PD7 (DB7) 15 PB5 (CS1) 16 PB4 (/RST) und 4,7k an GND (disabled Display beim Programmieren) 17 PB3 (CS2) 18 PB6 (CS3) 19 Vee s. oben 20 über 8 Ohm + Schalter mit +5V verbinden Bei der Anpassung sind folgende Stolpersteine zu beachten: font.h : Kommentar löschen bei #include und PROGMEM (8/16 Bit Struktur) KS0108 : 128 -> 192 KS0108-AVR.c : Anzahl der asm("nop"); entsprechend den MHz
Wäre jemand so freundlich und könnte seine "Ansteuerung" (in C vielleicht?) kurz hier als Code posten? Ich verzweifle gerade mal wieder an dem Ding und versuche Fehlerquellen zu eliminieren. Vielen Dank
Hallo Hans, um zu helfen anbei mein komplettes Verzeichnis zum obigen Foto gezipt. Achtung: Mein C-Erstlingswerk in Arbeit mit dem Ziel, die Ansteuerung zu verstehen und das Display zu testen. Nur zur privaten Information! Karl-Anton
Ich kann das zuletzt gesagt bestätigen. Die CS-Signale müssen invertiert werden. Wenn man für CS1 und CS2 je 1/4 7400 verwendet und CS3 unbelegt läßt, kann man das Dsiplay in jeder Schaltung für KS0108-Displays verwendet werden. (getestet an einem einfachen Oszi mit dem Display) :) Gruß, Jarod
Lieber Karl-Anton, herzlichen Dank für die Datei. Ich werde heute Abend oder morgen mal deinen Code flashen. VIele Grüße Hans
Das sieht ja gut aus. Da werd ich wohl doch noch mal bißchen mit dem Display rumspielen...
Liebe Display-Freunde, da sich hier schon lange nichts mehr getan hat, hier ein Foto und eine Zusammenfassung meiner Aktivitäten um etwas Mut zu machen. Von Kontrastproblemen habe ich bei meiner Entwicklung nichts gemerkt, sicher kann man mit falsche Ansteuerung auch etwas falsch machen. Long time Oszilloskop with LCD-Display 64x192 Pixel =================================================== Der Anfang zu meinem Scope mit LCD-Display war der Artikel http://www.serasidis.gr/circuits/AVR_oscilloscope/avr_oscilloscope.htm Dazu entstand eine Platine mit zusätzlichem per Relais im Bereich x1 bis x100 einstellbaren Vorverstärker. Beim Aufspielen der Software-Version 1.01. und Verstehen der für mich neuen Spache C zeigte sich dann bald, dass alles ohne Timer nur mit Delays im Hauptprogramm ablief. Es gab nur eine Timing-Frequenz und die Erweiterungsmöglichkeiten waren auch stark eingeschränkt. Der neue Ansatz, diesmal mit der Bibliothek (für 6x128 und 64x192 LCD) nach http://en.radzio.dxp.pl/ks0108/ (siehe oben) begann mit einer kompletten universellen Grafikansteuerung und wurde von mir um die Scope Funktionen ergänzt. Grundlage für das Timing ist ein IRQ alle 10us bei 16 MHz Quarz. Über Zähler davon abgeleitet wird die variable Timing-Einstellung von 20us/Skt bis 200min/Skt (> 24 Std gesamt) und dem dazugehörenden ADC Triggerzeitpunkt. Ebenso abgeleitet werden die Display-Zeit (0,5sec) und das Delay für die Tastaturentprellung nach http://jump.to/fleury. In der „nicht-IRQ-Zeit“ laufen die restlichen Programme wie z.B. Tastenauswertungen und Display-Anzeige im main-Programm. Die Entwicklung erfolgt wie gezeigt auf einem 64x192 Display. Damit ist im rechten Drittel Platz für Testausgaben zur Fehlersuche. Folgende Funktionen sind bisher vorhanden (Werte pro 1Skt = 10Pixel): Eingangsspannung: 5mV, 10mV, 25mV, 50mV, 100mV, 250mV, 500mV(ss) Timing: 200usec, 500usec, 1msec, … 10min, 20min, 50min, 100min, 200min Trigger: Level digital einstellbar 0..64 – weitere Varianten in Arbeit Hilfreich wäre sicher auch eine RS232 Ausgabe. Bei hohen Frequenzen wird die Messung als „on shot“ auf dem Display angezeigt, bei langsamen jeder Pixel sofort nach der Messung. Alle Zahlenwerte werden am rechten Bildrand angezeigt und bei Änderung aktualisiert. Der Inhalt der unteren Zeile ist variabel und abhängig von jeweiligen Modus. Das Programm ist in mehrer *.c und *.h aufgeteilt und bedarf sicher nach Fertigstellung einer Bereinigung. Falls aus dem ganzen was Komplettes wird, versuche ich es bei einer Fachzeitschrift unterzubringen, andernfalls werde ich es im Forum posten. Karl-Anton
Sieht gut aus. Kannst Du bitte ein Foto von der Rückseite des Displays machen? Ich würde gern mal die verwendeten Widerstände vergleichen.
Hallo Timm, mit Lampenlicht gab es gestern nicht die erforderliche Auflösung. Zum Glück scheint heute die Sonne! Was ist übrigens dein Problem? Karl-Anton
Hallo Karl-Anton, mit Deinem Testbeispiel funktioniert mein Display auf Anhieb. Das Programm von "radzig" habe ich noch nicht durchgearbeitet, aber der Effekt ist prima (es fehlt zwar die senkrechte Linie rechts) und mit dem Kontrast gibt es keine Probleme. Nun wollte ich die CS Anschlüsse für die 3 Treiber fest auf GND legen (Einsparen von Port-Anschlüssen), bekomme dann aber eine wilde Überlagerung der gesamten Anzeige. Gibt es eine Erklärung, dass die CS Anschlüssen bei der Befehlsübergabe stets geschaltet werden müssen? Beim Pollin Graphic Display ALPS LSU7S1011A mit dem SED 1530 Controller habe ich die CS-Anschlüsse einfach auf GND gelegt und habe ein perfektes Bild. mfG frewer Ps: Zu was dient eigentlich der vorgesehene aber nicht bestückte Q1? Leider habe ich keinen ME7660 und weiß auch nicht, wo man ihn beschaffen kann. An seinem Ausgang hängt ja der Kollektor eines Transistors usw. Also schließe ich daraus, dass zusätzliche Möglichkeiten im Display stecken. Hat da schon jemand etwas herausgekriegt?
Hi >Nun wollte ich die CS Anschlüsse für die 3 Treiber fest auf GND legen >(Einsparen von Port-Anschlüssen), bekomme dann aber eine wilde >Überlagerung der gesamten Anzeige. Gibt es eine Erklärung, dass die CS >Anschlüssen bei der Befehlsübergabe stets geschaltet werden müssen? >Beim Pollin Graphic Display ALPS LSU7S1011A mit dem SED 1530 Controller >habe ich die CS-Anschlüsse einfach auf GND gelegt und habe ein perfektes >Bild. Dein ALPS-Display hat einen Controller mit mehreren CS-Anschlüssen. Das andere drei Controller mit je einem CS-Anschluss. MfG Spess
Moinsen liebe Alle, ich hab die Test-Library von Karl Anton D. mal geflasht und bekomme leider keine Anzeige. Die Dateien hänge ich an. Betrieben wird das LCD mit einem Atmega32 (im AVR Studio so angegeben) und nem 8MHZ Quarz. Die "nops" habe ich auf die Megaherzzahl angepasst. Hat irgendwer einen Tipp? Beschalten ist es, wie von Karl Anton beschrieben. Mit Regulierung des Potis sehe ich auch die Pixelstruktur des LCD (-> Kontrastspannungsaufbau tut) - jedoch leider nicht den erhofften Text. Im AVR-Studio sehe ich die "graphic.c", "KS0108.c", "KS0108-AVR.c" und "main.c" als Source Files. Die includes werden meinem Verständnis nach ja im Sourcecode selber gemacht. Oder muss ich für solche Includes noch weitere Einstellungen vornehmen? Für Troubleshooting-Tipps bin ich dankbar. Viele Grüße
Nachtrag: Wenn ich in der main in die Schleife nach der Initialisierung und dem ganzen Gemale usw. ne LED blinke, dann zeigt sich, dass die Schleife erst nach ca. 4-5 Sekunden aufgerufen wird. Ist das normal für die Initialisierung?
Hallo Hans, ich versuche derzeit ebenfalls das LCD anzusteuern und scheitere bisher. Den Aufbau habe ich ähnlich der Beschreibung oben. Bin mir bislang unsicher ob es ein Hard- oder Softwareproblem ist. Ich werde mal deine Dateien flashen und berichten ob es dann geht.
Hallo, ich kann Euer Problem nicht nachvollziehen. Ich habe den ZIP-File von Karl-Anton D. runtergeladen und entzippt. Dann mit Studio4 ein Projekt im "entzppten" Ordner erstellt, die Ports an meine Konfiguration angepasst und das Programm (3* xx.c und 3* xx.h + 1* xx.txt) mit Studio4(WINAVR) compiliert. Den hex-File habe ich mit Ponyprog in den ATMEGA32 geladen. Das Programm lief auf Anhieb. Am Display habe ich mittlerweile den RESET-Pin mittel 10kOhm nach Vcc gelegt (wird nicht gebraucht). Habe mittlerweile auch etwas herumgespielt und alles läuft prima. Also viel Erfolg. Hoffe doch nicht, dass die Displays mit gleicher Bezeichnung unterschiedlich sind. Interessant allerdings ist, dass offenbar die Ansteuerung der Controller ks0108 in den verschiedenen Displays unterschiedlich ist (zB Pollin DM1264A und Pollin TG12864B). Versuche zZt ein Programm mit Display TG12864B auf DM1264A umzuschreiben = nicht ganz einfach. mfG frewer
Hallo, @Carsten: ja, flash doch mal und berichte dann. @frewer: Um wirklich alle Fehler auszuschließen (softwareseitig) habe ich dein Vorgehen nochmal kopiert: AVRStudio4, öffnen der .aps des entzippten Ordners. compilieren aus: main.c KS0108.c KS0108-AVR.c graphic.c die header werden (ohne mein zutun, denke ich richtig?) per #include "KS0108.h" #include "graphic.h" #include "font5x8.h" eingebunden. Das vogel.txt füge ich über Rechtsklick "Other files" -> Add existing files hinzu. Ich habe die Anzahl der asm("nop"); auf 8 verändert (passend zum 8Mhz Quarz - oder brauchts da aus Tempogründen 16Mhz?) und noch in der config selber auf Atmega32 gestellt und 8000000 Hz als Takt angegeben. Anschließend compiliert alles ohne Probleme. Flash nun noch per AVR Studio. Ich hab den Reset wie du mal auf Vcc über 10kOhm gezogen, hat aber auch nichts verändert. Spricht das eher für ein Hardwareproblem? Für Hinweise bin ich dankbar, langsam gehen mir die Ideen aus. Beste Grüße Hans
Hallo Hans, Hans B. schrieb: > Das vogel.txt füge ich über Rechtsklick "Other files" -> > Add existing files hinzu. Nicht nötig, da der Vogel bereits in font5x8.h eingebunden ist. Mach das mal wieder weg. > Ich habe die Anzahl der asm("nop"); auf 8 verändert (passend zum 8Mhz > Quarz - oder brauchts da aus Tempogründen 16Mhz?) und noch in der config > selber auf Atmega32 gestellt und 8000000 Hz als Takt angegeben. Ich habe in KS0108.h #ifndef F_CPU #define F_CPU 8000000UL #endif eingefügt und in KS0108-AVR.c die Delay-Function umgeschrieben: void GLCD_Delay(void) { int x; for (x=1;x<=F_CPU/1000000;x++) {asm("nop");} // 1 nop per MHz Quarz-Frequency } Aber das ist alles nicht kriegsentscheidend. Aus meiner Sicht hast Du einen Hardware-Fehler irgendwo. Ich benutze den PORTD als Datenausgang, den PORTB als Steuerausgang. Meine Verdrahtung in KS0108.h definiert: #define KS0108_DATA_PORT PORTD // Data-Port D #define KS0108_DATA_DIR DDRD #define KS0108_DATA_PIN PIND #define KS0108_CTRL_PORT PORTB // Controll-Port B #define KS0108_CTRL_DIR DDRB #define KS0108_RS (1 << 0) #define KS0108_RW (1 << 1) #define KS0108_EN (1 << 2) //#define KS0108_RST (1 << 3) // Reset = H wegen Widerstd gegen Vcc #define KS0108_CS1 (1 << 4) // 64x64 #define KS0108_CS2 (1 << 5) // 128x64 #define KS0108_CS3 (1 << 6) // 192x64 mfG frewer
Hallo, ok, die Software habe ich auch weniger und weniger in Verdacht. Ich habe mal meine Beschaltung als Plan erstellt. Siehst Du da evtl. einen Fehler? Versorgt wird die Schaltung über den 5V-Aufbau aus dem Tutorial. Vielen Dank fürs drüberschauen, Hans
Sorry, sah nur so aus, hab es mal besser dargestellt (hoffe ich ;) )!
>Sorry, sah nur so aus, hab es mal besser dargestellt (hoffe ich ;) )!
Auf der rechten Seite hast du GND und AVCC nicht angeschlossen.
Vielen Dank - bin leider physisch vom Versuchsaufbau heute und morgen getrennt, aber ich werde Mittwoch deine hex mal flashen.
Hallo Hans, nimm doch mal die Beleuchtung vom ATMEGA weg. Meines Erachtens zieht die viel Strom. Ich habe einen 7805 am ATMEGA, der heiß wird, wenn ich ihn für die Beleuchtung missbrauche. Dann prüfe auch mal die Programmierung der Fuse-Bits (immer wichtig) und natürlich die Konfiguration in der ks0108.h. Wenn alles stimmt, muss das Display mit dem Programm von Karl-Anton D. funktionieren. Bei Änderungen am programm darauf achten, dass das Display in der Höhe nach Pages (8 Pixel) organisiert ist und auch so nur beschrieben werden kann (sitze schon 3 Tage an einem Programm bis ich diesen Punkt entdeckt habe). Viel Glück frewer
Liebe Alle, ich hab die hex von Holger geflasht, leider gleichbleibende Anzeigelosigkeit. Habe mittlerweile auch GND und AVCC (rechtsseitig) angeschlossen und nen Kondensator zwischengehängt. Testweise habe ich auch die Beleuchtung abgehängt. Hat noch jemand einen Vorschlag zur Fehlersuche? Muss ich langsam einen Hardwaredefekt in Betracht ziehen? Die Kontrastspannung etc scheint ja zu funktionieren. Bei Regulierung des Potis kann ich die Pixel sehen. Viele Grüße Hans
Hi Hans, bin verwundert, denn bei mir hat es auf Anhieb geklappt. Mit einem Oszillographen könntest Du mal die CS0..3 Leitungen prüfen. Die Signale sind zunächst H, zeigen dann Impulse auf und gehen wieder auf H. Das gilt für alle 3 Leitungen (Grund: in der GoToXY Routine werden "Enable-/Disable-Befehle" an die Controller geschickt). Denke bei Nutzung von Port PC an das JTAG-Fuse-Bit, sonst kommt da nichts). Ansonsten habe ich dann auch keinen Rat mehr außer, dass Du halt doch noch einmal genau den Anschluss und dann auch die Daten in der ks0108.h kontrollierst. Ich würde auch bei dem Programm von Anton bleiben, weil das bestimmt funktioniert. (Siehe mein Aufbau im Anhang.) weiterhin Mut und bisher konnte ich das Display nicht kaputtmachen - also gibt es Hoffnung - mfG frewer
Hallo, die komplette Beschreibung mit der C-Software findet sich im Thread Beitrag "Long time Oscilloskop with Atmega32 & LCD-Display 128x64 Pixel" Long time Oscilloskop with Atmega32 & LCD-Display 128x64 Pixel Für das (einseitige) Layout der Scope-Leiterplatte habe ich allerdings ein schmales Display 128x64 vorgezogen. Dann paßt es in mein Gehäuse 205x113x35mm (beides Pollin). Karl-Anton
Hallo zusammmmen, nun wollte ich das Display am PIC32 betreiben. Leider zeigt sich nichts auf dem Display. Nachdem ich nochmals die Verkabekung geprüft habe, habe ich mit dem Pickit mal versucht, heraus zu finden woran es hapert. Als Status kommt immer, Display nicht eingeschaltet.... Wenn ich zum Schluss die Chip's nochmals einschalte, kommt auch der Text auf dem Display. Nur 1. Treiber kommt nichts...
1 | GLCD_Initialize(); |
2 | GLCD_ClearScreen(); |
3 | |
4 | GLCD_GoTo(32,0); |
5 | GLCD_WriteString("+-------------------+"); |
6 | GLCD_GoTo(64,1); |
7 | GLCD_WriteString("| Universal |"); |
8 | GLCD_GoTo(64,2); |
9 | GLCD_WriteString("| KS0108 library |"); |
10 | GLCD_GoTo(64,3); |
11 | GLCD_WriteString("| |"); |
12 | GLCD_GoTo(64,4); |
13 | GLCD_WriteString("| en.radzio.dxp.pl |"); |
14 | GLCD_GoTo(64,5); |
15 | GLCD_WriteString("| STM32 Cortex-M3 |"); |
16 | GLCD_GoTo(64,6); |
17 | GLCD_WriteString("| microcontrollers |"); |
18 | GLCD_GoTo(64,7); |
19 | GLCD_WriteString("+-------------------+"); |
20 | GLCD_WriteCommand(0x3f, 0); // <--- Text erscheint nun! |
21 | GLCD_WriteCommand(0x3f, 1); |
22 | GLCD_WriteCommand(0x3f,2); |
Ich habe als Vorlage dies genommen: http://en.radzio.dxp.pl/ks0108, wie die meisten hier. Die Pin's sind angepasst. Anbei mal mein Code. So langsam verzweifle ich, selbst ein 128x64 hat diese Probleme. Am PIC18 hatte es funktioniert. Gruß Sascha
Hallo, einen kleinen Fortschritt gibt es nun. Habe den Code aus Beitrag "Re: LCD DM19264A (KS0108B Controller)" genommen und andere Pin's des PIC32 genutzt. Nun kommt das Bild, aber nur wenn ich am Ende wieder initialisiere:
1 | int main(void) |
2 | {
|
3 | unsigned char i; |
4 | |
5 | SYSTEMConfigPerformance(GetSystemClock()); // Enable optimal performance |
6 | mOSCSetPBDIV(OSC_PB_DIV_1); // Use 1:1 CPU Core:Peripheral clocks |
7 | mJTAGPortEnable(0); |
8 | PMMODE = 0; PMAEN = 0; PMCON = 0; |
9 | |
10 | AD1PCFG=0xFFFF; |
11 | |
12 | GLCD_Initalize(); |
13 | |
14 | |
15 | GLCD_ClearScreen(); |
16 | |
17 | GLCD_GoTo(0,0); |
18 | GLCD_WriteString("+----------------+-------------+"); // 32 Letter x 6 Pixel |
19 | GLCD_GoTo(0,1); |
20 | GLCD_WriteString("| Universal |"); |
21 | GLCD_GoTo(0,2); |
22 | GLCD_WriteString("| KS0108 library |"); |
23 | GLCD_GoTo(0,3); |
24 | GLCD_WriteString("| |"); |
25 | GLCD_GoTo(0,4); |
26 | GLCD_WriteString("|en.radzio.dxp.pl|"); |
27 | GLCD_GoTo(0,5); |
28 | GLCD_WriteString("| ATMEGA16/32++ |"); |
29 | GLCD_GoTo(0,6); |
30 | GLCD_WriteString("|microcontroller |"); |
31 | GLCD_GoTo(0,7); |
32 | GLCD_WriteString("+----------------+-------------+"); |
33 | GLCD_Bitmap((char *) (int)Vogel,132,11,16,16); //(char * bmp, unsigned char x, unsigned char y, unsigned char dx, unsigned char dy) |
34 | |
35 | while(1) |
36 | {
|
37 | |
38 | |
39 | }
|
40 | return 0; |
41 | }
|
Erst dann siht man das entsprechende auf dem Display, sonst nur extrem kurz. Weiß echt nicht, wo ich noch weiter suchen kann. Gruß Sascha
hi Sacha, also mit dem oben dargestellten Programmteil kann man natürlich nichts anfangen. Wichtig sind die Routinen, die das Display aktivieren und bedienen. Habe Deine Routine zwar angesehen, das reicht aber nicht, weil Du einen PIC und die Zusatzsoftware benutzt und nicht einen ATMEL wie ich. Mich wundert z.B., dass der Text erscheint aber sofort wieder verschwindet. Das lässt doch darauf schließen, dass Deine Routine einen Löschbefehl beinhalten (zB Reset Display). Ich habe den Reset-Pin des Displays einfach über 10k an +5V gehängt. Damit gibt es schon mal keinen Resetfehler. Als nächsten Schritt ist zu schauen, ob ein softwaremäßiges Löschen des Displays erfolgt. Das wäre zwar denkbar aber es ist eher unwahrscheinlich. Ich musste an den Routinen von radzio ein bisschen fummeln, damit alles lioef, aber weiß im Moment die Details nicht mehr. Falls Dich meine Änderungen interessieren, dann schicke ich die Dateien KS108.c und KS108.h gerne per mail mal zu. mfG frewer
Hallo, danke für deine Antwort. Also, ich habe nichts geändert bis auf Pin Konfiguration. Reset wird zwar Hardwaremäßig angesteuert, aber permanent auf 1. Anbei mal das Projekt. Gruß Sascha
Hallo zusammen, nachdem das Display wunderbar am PIC32 funktioniert, würde ich gerne auch größere Font's nutzen, anstatt nur den 5x7. Nur verstehe ich die folgenden Zeilen nicht:
1 | void GLCD_WriteChar(char charToWrite) |
2 | {
|
3 | int i; |
4 | charToWrite -= 32; |
5 | for(i = 0; i < 5; i++) |
6 | GLCD_WriteData(GLCD_ReadByteFromROMMemory((char *)((int)font5x8 + (5 * charToWrite) + i))); |
7 | GLCD_WriteData(0x00); |
8 | }
|
So gut bin leider noch nicht in C. Mir ist nicht klar, wie ich es soweit abändere, das ich Font's aus Beitrag "LCD Schriftarten ( Fonts in veschiedenen Größen )" nutzen kann. Gruß Sascha
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.