Forum: Mikrocontroller und Digitale Elektronik GLC-Display T6963 - Probleme mit Grafik Bereich!


von Andreas (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Mit einem Controller habe ich das Grafik LC-Display von Toshiba
(Grafik LC-Display TLX-1391 128x128)angesprochen.
Ich kann soweit Pixel auf das Display anzeigen lassen.
Nur kann ich nicht auf jeden Bereich einen Pixel setzen.
Verzweifelt habe ich schon das Datenblatt gelesen, irgendwie komme ich
durcheinander. Wahrscheinlich muss ich beim Register 0x24 den Bereich
dafür festlegen.

Den C-Code habe ich mal dazugelegt.
Vielleicht gibt es hier in diesem Forum jemanden der mir dazu Helfen
kann.
Vielen Dank!

Tschüss

von Andreas (Gast)


Lesenswert?

Anscheinend gibt es hier niemand der sich mit diesem Display auskennt.

von Andreas (Gast)


Lesenswert?

Hmmm...so wie es aussieht liegt es wohl am Register 0x24.
Aber wie muss ich dies entsprechend setzen?

von Benedikt (Gast)


Lesenswert?

Was heißt "Nur kann ich nicht auf jeden Bereich einen Pixel setzen."
genau ?

Was mir auffällt: In der Software sind eine Menge Fehler, so z.B. bei
der Initialisierung:
out(0x43, 32, 32);
Laut Datenblatt muss das zweite Argument 0 sein !

out(0x42, 0, 0);
Wiso wird der Grafikbereich ab Adresse 0 definiert, aber später wird
0x0200 addiert ?
void LCD_PutPixel(unsigned char x, unsigned char y, unsigned char Set)
{
unsigned int XY;
unsigned char bitByte;
  XY=0x200;


Und wiso gibt es so viele Pixel setzen Routinen ?

von Andreas (Gast)


Lesenswert?

Ach so! Ja hast du ein kleines Beispiel Programm!
Da kann ich es mir besser vorstellen. Warum ab Adresse 0x200h ?

von Benedikt (Gast)


Lesenswert?

Schreib mal so dass es jeder kapiert, sonst hilft dir keiner! Ich
versteh grad nix von dem was du meinst...

>Warum ab Adresse 0x200h ?
Musst du wissen, ist doch dein Programm.

von Andreas (Gast)


Lesenswert?

Ok! Und zwar, ich kann auf meinem Display nicht überall ein Pixel
darstellen lassen. Nur gewisse Bereiche vom Display kann ich
ansprechen. Welche Register sind dafür zuständig?
Ich komme mit den ganzen Adressen jetzt total durcheinander.

von Benedikt (Gast)


Lesenswert?

Welche Bereiche genau kannst du nicht ansprechen ?
Ist das Programm von dir ? Es sieht nämlich eher so aus, als wenn es
für ein 240x?? LCD wäre...

von Andreas (Gast)


Lesenswert?

Achso das Display ist ein 128x128er!
Welchen Bereich ich nicht ansprechen kann, dass kann so nicht erklären.
Mir würde schon genügen wenn ich wüsste welche Register ich ansprechen
muss um jeden Bereich anzusprechen.

Hast du einen Beispiel Quellcode in C?

von Andreas (Gast)


Lesenswert?

Ja kennst du dich gut aus mit dem Display T6963?

von thkais (Gast)


Lesenswert?

Könntest Du auch mal auf die Fragen antworten...?

Wichtig ist erstmal, daß die Text bzw. Grafik-Area richtig definiert
ist. Wie - steht im Datenblatt.
Um einen Pixel zu setzen, gibts verschiedene Möglichkeiten.
Zuerst mußt Du wissen, ob das Display im 6- oder 8-Bit Modus arbeitet.
Je nachdem mußt Du nämlich für die Pixeladresse Modul 6 oder 8
berechnen.
Aus den Koordinaten (x,y) wird also erst einmal die Byteadresse
berechnet und dann die Bitnummer. Dann wird der Pixel entweder mit
einer (Lies Byte) - (Verändere Byte) - (Schreibe Byte) Operation
gesetzt oder der im Display eingebaute SetBit Befehl verwendet. Ich
habe momentan das Datenblatt nicht vorliegen, auswendig weiß ich jetzt
nicht mehr.

von Andreas (Gast)


Lesenswert?

Ok ich habe verstanden.
Ich habe bei mir den 8-Bit Modus am laufen.
Ein Beispiel würde mir sehr helfen.

von Andreas (Gast)


Lesenswert?

Hallo thkais

Vielen Dank für deine Unterstützung.
Ich komme da jetzt durcheinander. Ich weiss nun jetzt nicht was tun
soll!

von thkais (Gast)


Lesenswert?

Hmm - vielleicht hast Du Dir ein etwas schwieriges Projekt ausgesucht?
Der Controller des Displays bildet den Speicher (der auf dem Display
selbst vorhanden ist) direkt auf dem LCD ab. Ein 0-Bit entspricht dann
weiß, ein 1-Bit entspricht schwarz (sofern nicht der Reverse-Mode
eingeschaltet ist).
Um nun einen Pixel zu setzen, mußt Du also im Speicher des Displays den
Zustand eines Bits ändern.
Aber zuvor muß das Display auch richtig initialisiert werden. Der
T6963-Controller kann für verschiedene Display-Typen (Größen) verwendet
werden. Deshalb muß man dem Controller mitteilen, wie groß das Display
nun tatsächlich ist - und das jedesmal nach dem neu einschalten.
Dazu muß man sich auch die Frage stellen, was man vor hat - nur Text,
nur Grafik, oder beides? Dementsprechend müssen die Text-Area und die
Grafik-Area eingestellt werden.
Um Dir jetzt helfen zu können, brauche ich Deinen Wissenstand: Welche
Erfahrungen mit µControllern hast Du, hast Du schonmal ein Display
angesteuert, oder ist das Dein erstes Projekt??

von Andreas (Gast)


Lesenswert?

Hallo  thkais !

Danke für die Antwort. Jetzt ist es mir schon klarer.
Dies ist mein erstes Projekt mit einem Grafik Display.
Ich steuere mit dem AVR 90S8535 den T6963.
Programmiersprache C: siehe Angehängte Sourcecodes.
Dsiplay größe 128x128

Kannst du mir sagen welche Register ich genau ansprechen muss?

von Benedikt (Gast)



Lesenswert?

> Kannst du mir sagen welche Register ich genau ansprechen muss?

Eigentlich fast alle, mit denen man Einstellungen vornimmt
(Adresspointer, Modus, usw.)

Hab dir mal was angehängt, da kann ich mir eine ewig lange Erklärung
sparen...

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
Noch kein Account? Hier anmelden.