www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik GLCD Ram auslesen?


Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe eine kurze Frage zum auslesen des Rams eines Grafik LCDs.
Ich schreibe im Moment in Assembler eine Routine um einzelne Punkte zu 
setzen, dafür muss ich vorher natürlich jeweils das Byte, in welchem der 
Punkt gesetzt werden soll, auslesen, den Punkt setzen, und das Byte 
wieder schreiben, damit die benachbarten Pixel nicht verändert werden.

Nun steht im Datenblatt zwar welche Pins wie gesetzt werden müssen, um 
den Ram auszulesen, allerdings steht dort nicht, wann die Daten dann 
anliegen.
Konkret meine ich: Muss ich Enable auf High setzen, dann lesen, dann 
Enable auf Low setzen oder muss ich erst Enable auf High, dann wieder 
auf Low setzen und erst dann lesen? Oder komplett anders? Ich habe beide 
genannten Varianten ausprobiert und beide funktionieren anscheinend 
nicht...

Oder ist es vielleicht problematisch, den Port D des Microcontroller vor 
der Leseoperation erstmal auf Eingang zu stellen? Eventuell dauert dies 
einen Augenblick, aber ich habe auch schon einige nops eingefügt...

Hoffe ihr wisst Rat.

Grüße,
Christian

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hängt stark vom Baustein ab. Schau ins Datenblatt, da gibts 
normaleweise(tm) einen Abschnitt zum Timing. Aus jenem kann man auch die 
Reihenfolge ablesen.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Von welchem Display/Displaycontroller redest du?

MfG Spess

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh sorry, vergessen, es ist ein Powertip PG12864A mit 128x64 Pixeln. 
Controller sind 2xKS0108 bzw. kompatible.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Sieh dir das Datenblatt S.9. Dort ist das Timing für Lesen. Bei mir 
steht da zwar 'Fig 3. MPU write timing' drunter. Ist aber für Lesen.
Bist du sicher, das du pixelweises Schreiben brauchst?

MfG Spess

MfG Spess

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, pixelweises Schreiben macht die Sache mit frei positionierbaren 
Texten und Grafiken doch sehr viel einfacher.

Und habe ich das Timing Diagramm jetzt richtig verstanden?
Ich muss erst den Enable auf High setzen, dann auf Low, dann R/W auf 
High für Lesen, dann Enable auf High, dann kurze Zeit warten und danach 
die Daten vom Datenport auslesen, danach Enable wieder auf Low setzen.
Irgendwie scheint das nicht so ganz zu stimmen. Ich schreibe ja auch 
anders auf Display als das bei dem Timing Diagramm fürs Schreiben 
angegeben ist, z.b. setze ich den Enable nur einmal statt zweimal...

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Ja, pixelweises Schreiben macht die Sache mit frei positionierbaren
>Texten und Grafiken doch sehr viel einfacher.

Aber auch sehr viel langsamer. Ich habe das erst einmal gebraucht.

>Ich muss erst den Enable auf High setzen, dann auf Low, dann R/W auf
>High für Lesen, dann Enable auf High, dann kurze Zeit warten und danach
>die Daten vom Datenport auslesen, danach Enable wieder auf Low setzen.

Der Zustand von E sollte, außer bei Lese- oder Schreiboperationen, immer 
L sein.
Also wenn E=L ist, werden CS,RS und RW gesetzt. Dann E auf H, Daten 
Lesen und E wieder auf L. Fertig.

MfG Spess

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Also wenn E=L ist, werden CS,RS und RW gesetzt. Dann E auf H, Daten
>Lesen und E wieder auf L. Fertig.

Noch nicht ganz fertig;)
Beim Lesen muss E zweimal rauf und runter. Siehe Datenblatt Seite 11
Output Register.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Noch nicht ganz fertig;)

Da hast du wohl Recht.

MfG Spess

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das erklärt einiges, so wie spess53 gesagt hat, hatte ich die Routine 
auch erst, natürlich funktionierte sie nicht. Was mir fehlte war die 
Info mit dem zweifachen Enable, danke, werds gleich testen!

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja funktioniert zwar immer noch nicht vernünftig, aber ich denke das 
liegt weniger an der Lesen-Routine selbst, sondern mehr an dem Rest 
drumherum, was ziemlich schlampig programmiert ist...
Wenigstens weiß ich jetzt den Ablauf, werde dann ein paar Routinen 
nochmal komplett neu und ordentlich schreiben müssen.

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.