|
|
||
|
|
||
| .. Datenblatt .. Grafikmodus ..Textausgaben | ||
|
|
||
|
Zeichensätze
Im
Auslieferungszustand des Displays sind bereits Zeichensätze
in den FlashROM der Anzeige vorgeladen. Diese werden aber bei
der ersten Makrocompilation überschrieben.
So
steht im Grafikmodus kein sicherer Zeichensatz zur Verfügung.
Es ist zwar der Font 5 voreingestellt, aber wenn dieser
Zeichensatz nicht geladen ist, erfolgt auch keine Textausgabe.
Beim Aufbau eines Makro-Projekts sollten daher alle gewünschten
Zeichensätze, Grafiken, Bilder usw.. ausdrücklich
benannt werden, damit sie nach der Compilation in den FlashROM
der Anzeige übertragen werden und folgend genutzt werden
können. Der Aufbau eines Projekts ist mit der frei
verfügbaren EA-Kit IDE der Fa. electronic assembly möglich.
siehe
Zeichensätze |
||
|
|
Übersicht |
|
|
|
|
Wirkung auf das gesamte Display | |||||||||
| ESC | F | D | cv | ch |
|
|
|
Farbe für Vorder- und Hintergrund (1-32) für Displayfläche und Bereiche einstellen. Nach dem Einschalten stehen 16 Farben bereit (0=Transparent) | 8,1 | ||
| ESC | D | O | n |
|
|
|
|
Winkel der Ausgabe n=0 -> 0°, n=1 -> 90°, n=2 -> 180°, n=3 -> 270° | 0 |
|
|
| ESC | D | L |
|
|
|
|
|
Displayinhalt löschen (mit Hintergrundfarbe füllen) |
|
|
|
| ESC | D | S |
|
|
|
|
|
Displayinhalt füllen (mit Vordergrundfarbe füllen) |
|
|
|
| ESC | D | F | n |
|
|
|
|
Displayinhalt mit Farbe n= 1-32 füllen |
|
|
|
| ESC | D | I |
|
|
|
|
|
Displayinhalt invertieren (mit Komplementärfarbe füllen) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Attribute für Texte im Grafikmodus | ||||||||
| ESC | F | Z | cv | ch |
|
|
|
Farbe für Vorder- und Hintergrund (0-32) von Schrift einstellen. Nach dem Einschalten stehen 16 Farben bereit (0=Transparent) | 8 | ||
| ESC | Z | F | n |
|
|
|
|
Zeichensatz mit der Nummer n benutzen | 5 |
|
|
| ESC | Z | Z | nx | ny |
|
|
|
Zoomfaktor 1-8 für Zeichen in x- und y-Richtung | 1,1 |
|
|
|
|
ESC | Z | Y | nb | nh |
|
|
|
Zusätzliche Pixel 0-15 in der b-Breite und h-Höhe | 0,0 |
|
|
|
ESC | Z | J | n |
|
|
|
|
Leerzeichenbreite n=0 wie Zeichensatz, n=1 wie Ziffer, n>=2 wie angegeben | 0 |
|
|
|
ESC | Z | W | w |
|
|
|
|
Winkel der Textausgabe w=0 -> 0°,w=1 -> 90°,w=2 -> 180°, w=3 -> 270° | 0 |
|
|
|
|
|
|
|
|
|
|
|
Textausgabe im Grafikmodus Die nachfolgenden Texte werden mit den zuvor eingestellten Attributen s.o. ausgegeben. Ihr Ende wird durch ek=00h <NUL>, 0Ah <LF> oder 0Dh <CR> gekennzeichnet. Die Positionsangaben xx,yy beziehen sich auf Pixel und umfassen 2Byte. High Byte-> niedriger Wert, Low Byte-> hoher Wert der Positionsangabe. Mehrere Zeilen können durch das Zeichen | (7Ch) hervorgerufen werden. Textausgabe von \ durch \\ , von | durch \ |. |
|
|
|
|
ESC | Z | L | xx | yy | Text | ek | Zeichenkette linksbündig zur Pixelposition xx,yy ausgeben |
|
|
|
|
ESC | Z | C | xx | yy | Text | ek | Zeichenkette zentriert zur Pixelposition xx,yy ausgeben |
|
|
|
|
ESC | Z | R | xx | yy | Text | ek | Zeichenkette rechtsbündig zur Pixelposition xx,yy ausgeben |
|
|
|
|
|
|
|
|
|
|
|
Textausgabe zum Terminalfenster |
|
|
|
|
ESC | Z | T |
|
Text |
|
Zeichenkette aus einem Makro an das Terminalfenster ausgeben |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Beispiel
Das
folgende Beispiel zeigt einen C-Quelltext mit dem es möglich
ist, einen Text, den Orientierungen L,C,R entsprechend, an einer
Position xx,yy auszugeben. In diesem Beispiel steht die Funktion
dip240out() für ein Treiberprogramm, welches das Small-
Protokoll der Anzeige für die gewählte Schnittstelle
RS232, SPI, I2C bedient. Dieser Treiber gibt 0 zurück, wenn
die Übertragung nicht geklappt hat.
In
gleicher Weise können Funktionen für die anderen
ESC-Sequenzen aufgebaut werden.
|
||
|
|
|
|
|
|
int Gr43txtout(int x, int y, char ori, char* string)
{
char cmd[]="\x1B""ZL""\x00\x00\x00\x00";
unsigned n=0;
// Orientierung L,C,R entsprechend setzen
if (ori=='L')cmd[2]='L'; // #ZL x,y stringNUL
else if(ori=='C')cmd[2]='C'; // #ZC x,y stringNUL
else cmd[2]='R'; // #ZR x,y stringNUL
// Position xx,yy auf zwei Bytes aufteilen und Kommando ausgeben
cmd[3]=(unsigned)x; cmd[4]=x >> 8;
cmd[5]=(unsigned)y; cmd[6]=y >> 8;
if(!dip240out(cmd,7)) return(0);
// Länge des Strings an dessen Nullterminierung feststellen und
// dabei die deutsche Umlaute anpassen
while(string[n++]!= 0){
switch(string[n-1]){
case 'Ä': string[n-1]=0x8E; break;
case 'ä': string[n-1]=0x84; break;
case 'Ö': string[n-1]=0x99; break;
case 'ö': string[n-1]=0x94; break;
case 'Ü': string[n-1]=0x9A; break;
case 'ü': string[n-1]=0x81; break;
case 'ß': string[n-1]=0x9E; break;
case '°': string[n-1]=0xF8; break;
}
}
// String auf max 255 Zeichen begrenzen und ausgeben.
if(n>254){string[254]=0; n=255;}
if(!dip240out(string,n)) return(0);
return(1);
}
|
|
|
|
|
|
|
|
.de