Hallo, ich möchte ein graphisches LCD mit 240x128 Pixel und UC1608 Controller verwenden, schwarz/weis. Im Display sollen einige Dinge fix angezeigt werden (z.B: Rahmen) und einige Daten sollen veränderbar sein, wie Zahlen und Namen. - Wie übertrage ich die Inhalte am Besten?. Bilde ich im µC (PIC32) alle Pixels nach und übertrage den komplette Displayinhalt oder refreshe ich nur die geänderten Daten, wenn wie? - Wie lege ich am leichtesten einen Font mit z.B. 16 Pixel Höhe an? - Wenn ich eine Zahl verändern will, gebe ich dann die Startkooridnaten an und die Konstante der neuen Zahl oder wie übertrage ich die Daten am Besten? - Wie "zeichne" ich am einfachsten meine "Hintergrundmaske" (PC) und bringe sie im µC zum Display? - Gibt es vielleicht ein Möglichkeit einen Font im Display zu speichern, ähnlich aufgebaut wie bei einem alphanumerischen LCD, bei dem man Adresse und anzeigbares Zeichen angibt. - Wenn ich es richtig verstanden habe, hilft mir das Tool bitmap2lcd für den grundsätzlichen Aufbau, aber nicht für veränderbare anzeigen. Die physikalische Kommunikation dürfte für mich kein Problem darstellen, eher das Verständnis, wie grafische Displays anzuspreche sind. Danke schon mal im Voraus für Eure Hilfe Max
Max schrieb: > eher das Verständnis, wie grafische Displays anzuspreche sind Stell's dir halt wie eine Reversi Spiel vor, du hast halt Pixel die du Schwarz oder weiß machen kannst die Technik (vollständiger Puffer im RAM oder nur einzelnes refreshen) hängt eigentlich nur davon ab wie oft und Umfangreich Änderungen nötig sind, wenn sich alle paar Minuten was ändert lohnt es sicher nicht, für Komplexe Zeichenspielerreien mit entsprechender Framerate kann sich ein Backbuffer lohnen...
Hallo Läubi, danke für die Antwort. unter anderem wird eine Uhr angezeigt. hier ändert sich die Anzeige sekündlich. Andere Teile hingegen verändern sich eher halbminütlich. Welche tools sind zur Erstellung des Startbildschirms hilfreich? Grüße Max
Max schrieb: > Hallo, > > ich möchte ein graphisches LCD mit 240x128 Pixel und UC1608 Controller > verwenden, schwarz/weis. > Im Display sollen einige Dinge fix angezeigt werden (z.B: Rahmen) und > einige Daten sollen veränderbar sein, wie Zahlen und Namen. > > - Wie übertrage ich die Inhalte am Besten?. Bilde ich im µC (PIC32) alle > Pixels nach und übertrage den komplette Displayinhalt oder refreshe ich > nur die geänderten Daten, wenn wie? auf jeden Fall nur die Änderungen übertragen. Mit vollständigem Puffer im RAM (fast 4KB) verschwendet RAM und dauert in der Übertragung zu lang > - Wie lege ich am leichtesten einen Font mit z.B. 16 Pixel Höhe an? Die Fontdaten speicherst du als Bitmuster im Flash deines PIC, den kannst du dir mit geeigneten Hilfsmitteln aus einem Font am PC erstellen bzw. hier und da findet sich in verschiedenen libs auch ein Zeichensatz > - Wenn ich eine Zahl verändern will, gebe ich dann die Startkooridnaten > an und die Konstante der neuen Zahl oder wie übertrage ich die Daten am > Besten? nachdem ich mal das Datenblatt kurz überflogen hab ... Du kannst die Daten im Controller nur Byteweise ändern (READDATA/WRITEDATA) , d.h. alles was du darstellen willst must du vom PIC in Pixeldaten umrechnen lassen und an das Display übertragen. > - Wie "zeichne" ich am einfachsten meine "Hintergrundmaske" (PC) und > bringe sie im µC zum Display? für 'Grafik' mit einem Grafikprogramm erstellen und komplett im PIC speichern für Linien/Flächen nur die Eckpunkte speichern und die Anzeige im PIC berechnen > - Gibt es vielleicht ein Möglichkeit einen Font im Display zu speichern, > ähnlich aufgebaut wie bei einem alphanumerischen LCD, bei dem man > Adresse und anzeigbares Zeichen angibt. nein > - Wenn ich es richtig verstanden habe, hilft mir das Tool bitmap2lcd für > den grundsätzlichen Aufbau, aber nicht für veränderbare anzeigen. ja, für grafische Elemente die statisch im PIC gespeichert werden sollen > Die physikalische Kommunikation dürfte für mich kein Problem darstellen, > eher das Verständnis, wie grafische Displays anzuspreche sind. Um was darzustellen brauchst du div. Funktionen, die aufeinander aufbauen: 1: schreib/lese-Routine fürs Display, mit der du ganze Bytes oder auch nur einzelne Bits dieser Byts verändern kannst 2.1: Zeichenausgabefunktion, die die Pixeldaten für ein Zeichen aus dem Flash des PIC holt, und an der entsprechenden Speicheradresse im Displayram einsetzt. 2.2: Pixel setzen/löchen 3.1: Ausgabefunktion die Strings unter Verwendung von 2.1 auf's Display bringt 3.2: Linien/Flächen zeichen/invertieren/löschen (mit 2.2 o. 1) Grafiken zeichen (mit 1) es gibt auch schon einige Grafiklibs, damit man das Rad nicht neu erfinden musst. Ähnliche Controller sind z.B. KS0108 o. T6963, wo du dir einiges abschauen kannst Sascha
Max schrieb: > Welche tools sind zur Erstellung des Startbildschirms hilfreich? Paint? Im Prinzip jedes Grafiktool, konvertieren in C/ASM kannst du es dann z.B. mit diesem Tool: Beitrag "Grafikkonverter Tool für AVR/Mikrocontroller (BMP2C, BMP2ASM, BMP2BASCOM)" Max schrieb: > ändert sich die Anzeige sekündlich. > verändern sich eher halbminütlich. Das sollte bequem über read-modify-write Operationen auf dem LCD internem Speicher machbar sein ohne das es da zu Verzögerungen kommt, ein interner Puffer ist also nicht nötig.
Zum Konzept. Einen Backbuffer sollte man sich goennen, sofern das RAM dafuer vorhanden ist. Falls man eine extrem hohe Datenrate anstrebt, allenfalls sogar ein Delta-Backbuffer, wo man eintraegt was sich aendert. Was bei schwarzweiss einfach ist (XOR) dann muss man effektiv nur die geaenderten bytes uebertragen.
Hex Oschi schrieb: > Falls man eine extrem hohe Datenrate anstrebt Für die Darstellung einer Uhrzeit? o.O
Läubi .. schrieb: > Hex Oschi schrieb: >> Falls man eine extrem hohe Datenrate anstrebt > > Für die Darstellung einer Uhrzeit? o.O wenn man auch die hundertstel anzeigt und die Schrift so groß macht das sie das ganze Display ausfüllt ;-)
Vielen Dank an alle für die Antworten. Das ganze ist nun schon etwas klarer für mich. Werde mich nun an die Umsetzung machen. Grüße Max
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.