mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik GLCD Initialisierungs-Anweisungen


Autor: trooper (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich versuchen ein GLCD (ks0108 controller) zu initialisieren und einen
punkt o.ä. anzuzeigen.

Als vorlage habe ich dabei allerdings nur den Code von 2 anderen
leuten. Doch die anweisungen sind untereinander keines wegs äquivalent
weswegen ich mir kaum einen reim drauf machen kann wie das ganze
funktioniert.

Wäre nett wenn mir einfach mal jemand aufschreiben könnte mit welcher
methode (befehle in reihenfolge) man ein solches display
initialisiert.

Ich hab auch schon fleißig gegoogelt aber finde nix. Falls jemand ne
gute seite kennt, bitte einfach schrieben.

danke!

Autor: Andre Adrian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: trooper (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hi,

hab mir die Seiten nun mal in ruhe angeschaut. Letztere bietet wirklich
viele brauchbare Informationen. Schon mal danke.

Habe nun versucht das ganze mal umzusetzen - leider immernoch nicht
erfolgreich. Aber vileicht sieht ja jemand den/die Fehler und hilft mir
etwas ;)

cu

PS: Mir ist irgendwie nicht ganz ersichtlich für was der E-Pin gut ist.
Bei mir ist er am PORTC angeschlossen aber irgendwie wird der nie
erwähnt.

Autor: Nik Bamert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi trooper!


http://www.geocities.com/dinceraydin/lcd/gfxintro.htm

ist auch ne sehr gute page. Hat sogar einen integrierten simulator.
Man kann dort die einzelnen eingänge des  Disps. switchen, um zu sehen
ob man sein Programm wirklich zum Laufen bringen wird...


MFG Nik

Autor: Nik Bamert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry hab was vergessen :)

Ps. der "e" pin ist Enable, damit werden die Daten ins Display
übernommen, und wie's aussieht hast du auch genau das in deinem Prog.
vergessen


Nik

Autor: trooper (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Gut zu wissen :D

Also hier verbesserter, (Nun mit Enable) dennoch immernoch nicht
funktionierender Code. Ich hab das ganze auch schon im besagten
Simulator durchgespielt. Da funktionierts.

BTW: Es handelt sich um das Display Powertip PG-12864A - konnte leider
kein Datenblatt dazu finden.

Danke!

Autor: Nik Bamert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi trooper

ich kann keinen anderen (möglichen) Fehler als den finden:
// Set R/W -> 0
cbi(PORTC, 1);

du stellst r/w erst beim Pixel schreiben auf low(also schreiben)
Da solltest du evtl. schon am Anfang des Progs. tun, denn die
Befehle(initialisation) sollen ja auch geschrieben werden.


Oder: ich denke,ich hab zwar noch nie ein glcd verwendet, das man an
das disp auch eine Kontrastspannung anlegen muss. Dies könnte auch eine
mögliche Fehlerquelle sein...

Nik

Autor: trooper (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Nik,

danke schonmal für deine Bemühungen! Habe nun mal versucht den R/W Port
bereits am anfang auf low zu setzen, bringt jedoch auch keinen erfolg.

Auf jeden fall werde ich morgen mal mit nem Durchgangsprüfer die
Leitungen testen - nicht dass sich da ein Fehler eingeschlichen hat und
ich such mir hier n wolf.

also wie gesagt danke!

n8

Autor: Uwe Hebel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen

Ich weis nicht ob ich helfen kann, aber ich versuche es mal.
Habe mir ein 128/64 Pixel LCD ersteigert und hatte null plan wie das
teil Funzt.
Zum Glück war eine reichlich verwirrende Doku dabei.

Also:
RW,EN,DI  und die Datenleitungen setze ich am Anfang auf low
RST,CS1 und CS2 setze ich auf high

Anzeige Initialisieren:
        Auf die Datenleitungen setze ich den Wert  63
        Danach EN auf high , einen kurzen Moment warten (Delay)
        Und danach EN wieder auf low ( ohne das Delay hatte es vorher
nicht geklappt )

Anzeige löschen:

    Zeile einstellen( X):
        CS1 und CS2 auf high
        Startlinie setzen mit 192+Startlinie auf die Datenleitung
        X von 0 bis 7 Hochzählen lassen ( Xregister = Zeilen ) als
Schleife
        Dabei X setzen indem man 184+x auf die Datenleitung legt.
        Danach dem EN nicht vergessen siehe oben ( EN=high >
warten(Delay) > EN=low)

    Spalte einstellen(Y):
        Eine zweite Schleife für Y von 0 bis 63 ( muß sich innerhalb
der ersten Schleife befinden )
        Dabei Y setzen indem man 64+Y auf die Datenleitung legt.
        Danach dem EN nicht vergessen siehe oben ( EN=high >
warten(Delay) > EN=low)

    Wert einstellen(W):
        Eine dritte Schleife für W entweder 0 zum löschen oder den
Bitwert den man setzen will, also 128 gäbe einen Strich( muß sich
innerhalb der zweiten Schleife befinden )
        Dabei W setzen indem man W auf die Datenleitung legt. (ohne
zusätzlichen Wert )
        Danach dem EN nicht vergessen siehe oben ( EN=high >
warten(Delay) > EN=low)

Aber hierbei wird das selbe Zeichen auf der rechten Seite wie auch auf
der linken Seite geschrieben.
Grund: CS1 beschreibt die linke und CS2 beschreibt die rechte Seite.


Ich hoffe diese Ausführung ist noch irgendwie verständlich. ;-)

Autor: trooper (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

also ich hab das ganze jetzt zich mal durchgespielt und auch
unterschiedliche code änderungen haben null effekt gebracht. deswegen
habe ich mich nun mal auf die hardware seite konzentriert. Mit dem
Durchgangsprüfer habe ich alle leitungen gecheckt - funktioniert auch
alles tadellos. Dann habe ich zu testzwecken auf PORTA und PORTC
komplett 'high' ausgegeben - sprich
outp(0xff, PORTA);
outp(0xff, PORTC);
- und habe dann gemessen. Ich hatte überall mehr oder weniger 5 V außer
an einem PIN - nämlich PC4 alias TDO
dort konnte ich lediglich 0,05 V messen. Deswegen nun meine Frage:

Kann es sein dass ich zuvor spezialfunktionen der PORTS A oder C
abschalten muss / irgendwelche Einstellungen vornehmen muss um diese
beiden Ports "clean" zu bekommen ?

Danke!

Mfg

Autor: Uwe Hebel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welchen Controller benutzest du?

Autor: trooper (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Atmel ATMega16 mit 1 Mhz

Autor: trooper (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hoch schieb

sorry, aber komme aleine nicht weiter :/

Autor: Andysafe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
ich wäre sehr an deiner Lösung interessiert
Habe mir nähmlich das selbe Display besorgt, bekomme
es aber nich zum Laufen
Ich versuche es allerdings mit Bascom

MfG Andreas

Autor: V. Kattoll (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Trooper:
Bin jetzt erst auf diesen Thread gestossen.
Ich bastel z. Zt. mit einem Mega32, GLCD mit Toshiba 6963 Kontroller.
Habe mir allerdings kein Datenblatt zum Mega16 und deinem GLCD
angeschaut.

Aber wenn ich mir deine Initialisierung anschaue, fällt mir folgendes
auf:
Du initialisierst, in dem du nacheinander Daten auf den Ausgang legst.
Wie soll der Grafikkontroller wissen das diese Daten für ihn bestimmt
sind, und wann und wie lange die Daten gültig sind?

Will sagen:
da gibt es bestimmt noch einen Pin am Kontroller den du setzen musst,
damit der Kontroller die Daten übernimmt und evtl. anschliessend wieder
löschen musst. So ist es zumindest bei vielen anderen Bauelementen.

Zu deinem 2. Problem mit dem PC4 immer auf Low:
Schaue ins Datenblatt, ich habe am Mega32 mehrere Stunden einen
Hardwarefehler gesucht, bis ich endlich feststellte, das der Port C nur
falsch initialisiert war.

Betrachte das Posting als Denkanstoss in welcher Richtung du schauen
suchen/prüfen solltest.

Gruss
Volker

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.