Hi, ich habe einem MSP430 ein 4 Zeiliges Display angesteuert (65x132dot display, ST7565R) . Ich kann auch ohne Probleme Text auf den 4 Zeilen ausgeben. Wie kann ich aber die Schriftgröße ändern? Ich möchte eine Schrift mit doppelter Höhe verwenden (8x16), so das ich dann auch nur noch zwei Zeilen zur Verfügung habe. Eine entsprechende Schriftart habe ich bereits veruscht zu verwenden. Diese wird jedoch immer noch in der gleichen Höhe und über 4 Zeilen dargestell. Hat hier jemand ein Beispiel? mfg Andy
Das ist ein Vollgraphikdisplay, das bedeutet, daß alles, was es anzeigt, in Deiner Hand liegt. Es gibt keinen eingebauten Zeichengenerator, jede Zeichenausgabe ist ein Übertragen einer Bitmap aus Deinem Programm in den Graphikspeicher des Displaycontrollers. Dein Code, den Du uns nicht zeigst, muss entsprechend angepasst werden, wenn die Bitmaps größer werden.
Hi, danke für die schnelle Antwort. Zum senden verwende ich folgenden Code: Das ganze wollte ich für einen Schriftgröße 8x16 verwenden, komme da aber nicht weiter. ... #define LCDPORT_CONTROL P2OUT ... void printc(unsigned char r) { char i; unsigned char cZeichen; for ( i = 0; i < 7; i++ ){ cZeichen = font5x8[r - 32][i]; sendData(cZeichen); } } // ************************************** void sendData(unsigned char data) { LCDPORT_CONTROL &=~ CS; LCDPORT_CONTROL |=A0; doSPI(data); LCDPORT_CONTROL |= CS; }
Andy schrieb: > for ( i = 0; i < 7; i++ ){ Dann sieh Dir doch einfach mal genau diese Zeile an. Was macht die?
Das ist denke ich mal die Breite des Zeichens. wenn ich aus der 7 eine 15 mache, dann wird das Zeichen auch in der richtigen Breite dargestellt, aber immernich in der falschen Höhe.
Andy schrieb: > Das ist denke ich mal die Breite des Zeichens Bei einer Datenstruktur, die font5x8 heißt? Sieh Dir doch mal an, wie genau diese Tabelle aussieht.
Ok, sorry. Damit ich meinen Code nicht im ganzen Programm ändern muss, habe ich den Namen testweise beibehalten. const unsigned char font5x8[][16] = { { 0x00, 0xF8, 0x0C, 0x0C, 0x0C, 0x0C, 0xF8, 0x00, 0x00, 0x3F, 0x03, 0x03, 0x03, 0x03, 0x3F, 0x00}, { 0x00, 0xF8, 0x0C, 0x0C, 0x0C, 0x0C, 0xF8, 0x00, 0x00, 0x3F, 0x03, 0x03, 0x03, 0x03, 0x3F, 0x00} };
Andy schrieb: > 0x00, 0xF8, 0x0C, 0x0C, 0x0C, 0x0C, 0xF8, 0x00, 0x00, 0x3F, 0x03, 0x03, > 0x03, 0x03, 0x3F, 0x00 Und was soll das für ein Zeichen werden?
1 | 00000000 |
2 | 11111000 |
3 | 00001100 |
4 | 00001100 |
5 | 00001100 |
6 | 00001100 |
7 | 11111000 |
8 | 00000000 |
9 | 00000000 |
10 | 00111111 |
11 | 00000011 |
12 | 00000011 |
13 | 00000011 |
14 | 00000011 |
15 | 00111111 |
16 | 00000000 |
Und das schreibst Du einfach mit 16 Byte-Schreibzugriffen in den Graphikspeicher?
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.