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
Anscheinend gibt es hier niemand der sich mit diesem Display auskennt.
Hmmm...so wie es aussieht liegt es wohl am Register 0x24. Aber wie muss ich dies entsprechend setzen?
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 ?
Ach so! Ja hast du ein kleines Beispiel Programm! Da kann ich es mir besser vorstellen. Warum ab Adresse 0x200h ?
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.
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.
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...
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?
Ja kennst du dich gut aus mit dem Display T6963?
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.
Ok ich habe verstanden. Ich habe bei mir den 8-Bit Modus am laufen. Ein Beispiel würde mir sehr helfen.
Hallo thkais Vielen Dank für deine Unterstützung. Ich komme da jetzt durcheinander. Ich weiss nun jetzt nicht was tun soll!
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??
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?
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.