GLC-Display T6963 - Probleme mit Grafik Bereich!

Gast #99723
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
Angehängte Dateien:
Gast #99726
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 ?
Gast #99729
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.
Gast #99731
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?
Gast #99733
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.
Gast #99736
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??
Gast #99737
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren