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;
}
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.
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?
Eine eigene Frage?
Dieser Thread ist über 11 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.