Baugruppen Aktoren /Sensoren
 
 

 

 

           Grafik-TouchDisplay EA eDIP240

 

 
.. Datenblätter .. Grafikmodus

 

 

 
 
 
 

 

Der Grafikmodus unterscheidet sich vom Terminalmodus insofern, als bei ihm alle Ausgaben, auch die von Texten, über ESC-Sequenzen ablaufen müssen. Dabei versteht man unter ESC-Sequenzen Abfolgen von Steuerzeichen, die mit dem ASCII-Zeichen für Escape (<esc>=1Bh) eingeleitet werden.

Auch im Grafikmodus, der wie der Terminalmodus unmittelbar nach dem Einschalten der Anzeige verfügbar ist, steht nur ein sicherer Zeichensatz zur Verfügung. Es ist dies der, schon im Terminalmodus angesprochene 8•8 Font, der fest im ROM des Controllers der Anzeigeeinheit eingebrannt ist. Andere Zeichenfonts müssen, genau wie Bilder zunächst in den EEPROM der Anzeige übertragen werden. Dies ist mit der EA-Kit IDE möglich. Im Auslieferungszustand der Anzeige sind allerdings bereits weitere Zeichensätze im EEPROM vorhanden (s.Datenblätter).

Der Protokollrahmen mit welchem die ESC-Sequenzen und deren Daten übertragen werden müssen, entspricht dem des Terminalmodus und auch hier ist er für alle zur Verfügung stehenden Hardwareschnittstellen (RS232, I2C und SPI) identisch.

 

 

 

 

 

Inhalt .. ESC-Sequenzen des Grafikmodus zur / zum:

 

 

 

 

 

  

.. Textausgabe

 

 

  

.. zeichnen von Punkten, Linien, Rechtecken und Bereichen

 

 

  

.. Verwaltung von Bargraphen

 

 

  

.. Verwaltung von Bildern

 

 

  

.. Steuerung der Anzeige und des Clipboard

 

 

  

.. manuellen Verwaltung extern gesteuerter Menüs

 

 

 

 

 

 


 

 

 

 

 

Modi zur Schreibweise von ESC-Sequenzen
Zur Angabe von ESC-Sequenzen kennt die Anzeige zwei Verfahren, die mit Binärmodus und ASCII-Modus bezeichnet werden. Im Binärmodus, werden die Zeichen der ESC-Sequenz mit ihren hexadezimalen Werten zur Anzeige gesendet, jeder Parameter ist ein Byte lang.

Beispiel:
Zum Zeichnen eine Rechtecks auf der Grafikanzeige wird im Datenblatt die nachfolgende ESC-Sequenz genannt. ESC G R x1 y1 x2 y2. Bei ihr sind (x1,y1) und (x2,y2) die Koordinaten zweier Punkte zwischen denen das Rechteck aufgespannt werden soll. Hier mögen ihre konkreten Werte (10,20) sowie (50,80) lauten. Im Binärmodus würde hieraus ..

Binär-Modus: 1B 47 52 0A 14 32 50

Im ASCII-Modus kann anstelle des ESC-Codes (1Bh), das Zeichen '#' verwendet werden. Es folgen die Buchstaben, welche die ESC-Sequenz kennzeichnen. Parameter einer # -Sequenz werden als ASCII-Codefolgen angehängt, und müssen deswegen durch das Trennzeichen Komma ',' voneinander separiert werden. Für das obigen Beispiel ergäbe sich der String ..

ASCII-Modus: #GR 10,20,50,80

Eine der beiden Versionen von ESC-Sequenzen muss bei der Programmierung des Touchdisplays in der EA-Kit IDE oder beim Schreiben von Programmen verwendet werden.

In der Sprache C könnte man zur Bildung des ESC-Strings also schreiben ..
char* kommando ="#GR10,20,50,80";

oder unter Verwendung von Ersatzzeichen und einem Array.
char kommando[]= "\x1B""GR""\x0A\x14\x32\x50";

Bei der zuletzt vorgestelleten Schreibweise ist es sinnvoll, und aus Gründen die hier nicht weiter verfolgt werden sollen, Folgen von Ersatzzeichen und Folgen von ASCII-Zeichen durch “Gänsefüsschen“ einzuschliessen und aneinanderzureihen. Der Vorteil der letzten Schreibweise liegt darin, dass auf die Bytes des Arrays programmiertechnisch einfach zugegriffen werden kann und somit Werte in den Parametern änderbar sind. Eine Änderung des Wertes 0Ah könnte lauten,
kommando[3] = 0x00;

Damit wäre der Parameter von x1 auf 0 gesetzt. Das ist einfacher, als die zwei Bytes der ASCII-Folge 10 (31h und 30h) zu überschreiben. Da Zeichenfolgen (Strings) in C durch einen 0h Eintrag abgeschlossen werden, also nullterminiert sind, sollte dem Treiberprogramm, welches den Array-String senden soll, besser dessen Länge mitgeteilt werden. Die Nullterminierung ist kein guter Anhalt für das Ende des Strings, wie aus obigem Beispiel hervorgeht. Ein Byte welches eine 0 enthält, kann durchaus ein Parameter sein und nicht die Endekennung des Strings.

 

 

 

 

 

Koordinatenangaben beim EA eDIP240

Die Anzeige verfügt über 240 Bildpunkte (Pixel) in horizontaler Richtung und 128 Bildpunkte in vertikaler Richtung. Da der Ursprung des Koordinatensystems, wie bei Bildschirmen üblich, (oben, links)=(x,y)=(0,0) liegt und die Koordinaten mit (0,0) beginnen, sind für die x-Koordinaten Werte zwischen 0 und 239 und für die y-Koordinaten Werte zwischen 0 und 127 möglich. Dies gilt für alle ESC-Sequenzen, in denen Koordinaten angegeben werden müssen. Die Koordinatenangaben haben anders als im Terminalmodus keinen Bezug zu dem gewählten Zeichensatz. Sie benennen immer absolute Pixelpositionen der Anzeige.


Der oben festgestellte Koordinatenursprung bleibt auch bei der Drehung der Ausgabe um 90° nach rechts erhalten. Andere Drehungen sind nicht möglich.

 

 

 
www..de