mikrocontroller.net

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


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

Bewertung
0 lesenswert
nicht 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

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anscheinend gibt es hier niemand der sich mit diesem Display auskennt.

Autor: Andreas (Gast)
Datum:

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

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Andreas (Gast)
Datum:

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

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja kennst du dich gut aus mit dem Display T6963?

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas (Gast)
Datum:

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

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo thkais

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

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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??

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

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

Bewertung
0 lesenswert
nicht 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...

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.