TOUCHLCD.C2 - Hilfe


Beschreibung

Einfügen als Gemeinsames Modul

Funktionen:

Display-Befehle: Clipboard-Befehle: Terminal Funktionen: Textausgabe:
clear storedisp FF textmodus
init restoredisp CR font
invert storearea LF text
fill showarea enter definechar
screen cursor
clipboard goto
normal Tfont
Zeichnen: Bilder: Bargraph-Befehle: Tastatur-Befehle:
Gmode loadbmp bargraph button
dot sendbmp barvalue touchactive
gerade touchevent
Wgerade Makro-Befehle: Menü-Befehle: invertbutton
rechteck makro menu gettouch
rundeck automakro menuinvers touchreturn
delzone item
invzone menusend
fillzone menumakro
box menuabort
rundbox
Kontroll-/Definitions-Befehle: Port-Befehle:
blinkarea outport
blinktime inport
blinkmode portscan
beeper portinvers
ic2read
i2cwrite


Beschreibung   Nach oben

Das Modul touchlcd.c2 ist ein Treiber für die Grafik-Touch-LC-Displays von
Electronic Assembly.
(EA KIT 120-5 bis EA KIT 240-7; für EA KIT 320-8 nur bedingt geeignet)
Das LCD wird über SWCOM angeschlossen.
Ist die vorgesehene Leitungslänge zwischen CC2 und LCD nicht länger als 20cm,
dann kann man das LCD auch ohne Pegelwandler (TTL-Pegel) anschließen.
Dazu muß der Pegelwandlerbaustein am LCD entfernt werden. (siehe Anleitung LCD)
touchlcd.c2 benutzt ein Hardware-Handshake. Dazu muß die TTL-Pegel-Leitung
RTS vom Touchlcd an Port P1H.5 der CC2 angeschlossen werden.
Man kann im Modul touchlcd.c2 auch einen anderen Port festlegen.
Wenn man das LCD mit TTL-Pegel anschließt, sollte man Widerstande
zum Schutz der Ports (CC2 & LCD) in serie anschließen.

Will man das LCD weiter als 20cm von der Unit empfielt es sich einen
Pegelwandler zu verwenden. Man sollte einen zweiten(externen)
Pegelwandler verwenden. So kann man noch das HW-Handshake
der hwcom nutzen. 


Einfügen als
Gemeinsames Modul
   Nach oben

Die Datei touchlcd.c2 in das Verzeichnis .\CControl2\UserLib kopieren und in der Datei modules.txt
die Zeile touchlcd.c2 am Ende einfügen.

 


Funktionen:


Display-Befehle:

Initialisierung   Nach oben

    function init()

Die Funktion Init initialisiert SWCOM und das Touch-LCD.
Es wird dabei das Makro 0 des LCDs ausgeführt, falls
eines geladen wurde


Clear
   Nach oben

    function clear()

Die Funktion clear löscht das Display (Alle Pixel aus).


Invert
   Nach oben

    function invert()

Durch invert wird der gesamte Displayinhalt invertiert.


Fill
   Nach oben

    function fill()

Die Funktion fill ist das Gegenteil der Funktion clear .
Es werden alle Pixel eingeschaltet.


Display ein/ausschalten
   Nach oben

    function screene(byte OnOff)

Die Funktion screen schaltet das Display ein bzw. aus.
Beim Ausschalten wird nur der Displayinhalt unsichtbar, er bleibt aber erhalten.
Es können weiterhin Befehle gesendet werden.

OnOff Aus = 0, Ein = 1

Clipboard darstellen   Nach oben

    function clipboard()

Es wird der Clipboard-Inhalt dargestellt. Displayausgaben werden nicht
mehr sichtbar.

Normaldarstellung   Nach oben

    function normal()

Die Funktion normal zeigt das Aktuelle Bild.
Alle ausgaben werden wieder sichtbar


Clipboard-Befehle:

Displayinhalt sichern   Nach oben

    function storedisp()

Es wird der gesamte Displayinhalt als Bildbereich in das Clipboard
kopiert.

Normaldarstellung   Nach oben

    function restoredisp()

Es wird der Bildbereich im Clipboard wieder ins Display
zurückkopiert.

Bereich sichern   Nach oben

    function storearea(byte x1, byte x2, byte y1, byte y2)

Es wird der Bildbereich von x1,y1 bis x2,y2 in das Clipboard
kopiert.

x1 Begin (links)
y1 Begin (oben)
x2 Ende (rechts) 
y2 Ende (unten)


Bereich kopieren
   Nach oben

    function showarea(byte x, byte y)

Es wird der Bildbereich vom Clipboard wieder ins Display
an die Koordinaten x, y zurückkopiert.

x Begin (links)
y Begin (oben)


Terminal-Funktionen:

Formfeed   Nach oben

    function FF()

Die Funktion FF sendet einen Formfeed an das Display.(ASCII 12).
Es wird dabei des Bildschirm gelöscht und de Cursor auf
Position 1, 1 gesetzt.

Carriage Return   Nach oben

    function CR()

Die Funktion CR sendet ein Carriage Return an das Display. (ASCII 13).
Der Cursor wird dabei links an den Zeilenanfang gesetzt.

Linefeed   Nach oben

    function LF()

Die Funktion LF sendet ein Linefeed an das Display. (ASCII 10).
Der Cursor wird dabei eine Zeile tiefer gesetzt. Falls sich der
Cursor in der letzten Zeile befindet, wird dieser dann auf
Zeile 1 gesetzt.

Zeilenvorschub   Nach oben

    function enter()

Die Funktion enter sendet ein Carriage Return und ein Linefeed an
das Display. (ASCII 13 & 10).
Der Cursor wird dabei eine Zeile tiefer und an den Zeilenanfang gesetzt. 
Falls sich der Cursor in der letzten Zeile befindet, wird dieser dann
auf Position 1, 1 gesetzt.

Cursor-Status   Nach oben

    function cursor(byte set)

Die Funktion sursor schaltet den Cursor für den Terminalbetrieb
ein bzw. aus.

set Cursor-Status: 1=ein 0=aus


Goto
   Nach oben

    function goto(byte row,byte column)

Mit goto kann man den Cursor für den Terminalbetrieb
positionieren. Dabei entspricht goto(1,1) den Ursprung
ganz oben links.

row Zeile
column Spalte


Terminal-Font
   Nach oben

    function Tfont(byte font)

Die Funktion Tfont setzt den Font für den Terminalbetrieb.

font Font 1 bis 16


Textausgabe-Befehle:(Grafik-Modus)

Textmodus einstellen   Nach oben

    function textmodus(byte mode, byte muster)

Mit dieser Funktion wird der Textmodus eingestellt, wie der
Text ausgegeben werden soll. 

mode Modus: 1=setzen 2=löschen 3=invers
4=Replace 5=Invers Replace
muster Muster Nr. 0-7


Font einstellen
   Nach oben

    function font(byte font, byte zoomX, byte zoomY)

Mit der Funktion font wird  der Font und der Zoomfaktor für den 
Font eingestellt.

font Modus: 1=setzen 2=löschen 3=invers
4=Replace 5=Invers Replace
zoomX, zoomY Zoomfaktor 1 bis 8


Textausgabe
   Nach oben

    function text(byte dir, byte posX, byte posY, byte text[], byte length)

Die Funktion text gibt einen Text beginnend an der angegebenen Position
in der Ausrichtung dir aus dem Display aus

dir Ausrichtung horizontal:(bezogen auf posX)
'L'=Linksbündig, 'Z'=Zentriert, 'R'=Rechtsbündig
Ausrichtung vertikal:(bezogen auf posY)
'O'=Oben-Bündig, 'M'=Mittig, 'U'=Unten-Bündig
posX, posY Ausgabeposition
text[] zu übergebener String oder Bytepuffervariable
length Auszugebene Textlänge


Zeichen definieren
   Nach oben

    function definchar(byte font, byte nr, byte data[])

Mit der funktion definechar kann man eigene Zeichen definieren.

font Font-Nr. für den das Zeichen definiert werden soll
nr Zeichen-Nr.
data[] Zeichendaten

Anzahl erwarteter Daten-Bytes für die Fonts:
1: 4x6 6Bytes
2: 5x6 6Bytes
3: 6x8 8Bytes
4: 8x8 8Bytes
5: 8x16 16Bytes
6: 16x16 16Bytes
 


Zeichnen:


Grafik-Modus
   Nach oben

    function Gmode(byte mode)

Die Funktion Gmode bestimmt den Zeichenmodus, wie 
gezeichnet werden soll.

mode 1=setzen;2=löschen;3=Invers
4=Replace;5=Invers Replace


Punkt setzen
   Nach oben

    function dot(byte posX, byte posY)

Die Funktion dot setzt einen Punkt an posX,  posY.

posX Position X-Achse
posY Position Y-Achse


Gerade zeichnen
   Nach oben

    function gerade(byte x1, byte y1, byte x2, byte y2)

Die Funktion gerade zeichnet eine Linie von x1,y1 nach x2,y2.

x1 Anfang Gerade
y1 Anfang Gerade
x2 Ende Gerade
y2 Ende Gerade


Gerade weiterzeichnen
   Nach oben

    function Wgerade(byte x, byte y)

Die Funktion Wgerade zeichnet eine Gerade an der Position weiter,
an der zu letzt eine mit der Funktion gerade bzw Wgerade gezeichnete
Gerade geendet hat.

x1 Ende Gerade
y2 Ende Gerade


Rechteck zeichnen
   Nach oben

    function rechteck(byte x1, byte y1, byte x2, byte y2)

Mit der Funktion rechteck wird ein Rechteck von x1,y1 bis x2,y2
gezeichnet.

x1,y1 Linke obere Ecke
x2,y2 rechte untere Ecke


Rundeck zeichnen
   Nach oben

    function rundeck(byte x1, byte y1, byte x2, byte y2)

Mit der Funktion rundteck wird ein abgerundetes Rechteck
von x1,y1 bis x2,y2 gezeichnet.

x1,y1 Linke obere Ecke
x2,y2 rechte untere Ecke


Bereich löschen
   Nach oben

    function delzone(byte x1, byte y1, byte x2, byte y2)

Die Funktion delzone löscht einen Bereich des LCDs.(alle Pixel aus)

x1,y1 Linke obere Ecke
x2,y2 rechte untere Ecke


Bereich invertieren
   Nach oben

    function invzone(byte x1, byte y1, byte x2, byte y2)

Die Funktion invzone invertiert einen ausgewählten Bereich.

x1,y1 Linke obere Ecke
x2,y2 rechte untere Ecke


Bereich füllen
   Nach oben

    function fillzone(byte x1, byte y1, byte x2, byte y2)

Die Funktion fillzone füllt einen ausgewählten Bereich.(alle Pixel an)

x1,y1 Linke obere Ecke
x2,y2 rechte untere Ecke


Rechteck mit Füllmuster zeichnen
   Nach oben

    function box(byte x1, byte y1, byte x2, byte y2, byte muster)

Mit der Funktion box wird ein Rechteck mit Muster 0-7 von x1,y1 bis x2,y2
gezeichnet.

x1,y1 Linke obere Ecke
x2,y2 rechte untere Ecke
muster Füllmuster 0 bis 7


Rundeck mit Füllmuster zeichnen
   Nach oben

    function rundbox(byte x1, byte y1, byte x2, byte y2, byte muster)

Mit der Funktion rundbox wird ein abgerundetes Rechteck
mit Muster 0-7 von x1,y1 bis x2,y2 gezeichnet.

x1,y1 Linke obere Ecke
x2,y2 rechte untere Ecke
muster Füllmuster 0 bis 7


Bilder:


Bitmap aus EEProm laden
   Nach oben

    function loadbmp(byte bmp, byte posX, byte posY,)

Die Funktion loadbmp lädt ein Bitmap aus dem LCD eigenen EEProm
an Position posX, posY.

bmp Nr. des Bildes (0 bis 255)
posX,posY Position des Bitmaps (linke obere Ecke)


Bild an LCD senden
   Nach oben

    function sendbmp(byte data[], byte posX, byte posY)

Mit der Funktion box wird ein Rechteck mit Muster 0-7 von x1,y1 bis x2,y2
gezeichnet.

data[] Byte Array mit Bilddaten
Byte 0 : Anzahl Bytes=((Breite+7)/8)* Höhe Bytes
Byte 1 : Breite des Bildes in Pixel
Ab Byte 2: Bilddaten
posX, posY Position des Bitmaps (linke obere Ecke)


Bargraph-Befehle:


Bargraph definieren
   Nach oben

    function bargraph(byte mode, byte nr, byte x1, byte y1, byte x2, byte y2, byte aw, byte ew, byte muster)

Mit der Funktion bargraph wird ein Bargraph definiert.

mode Ausrichtung:
0=nach rechts
1=nach links
2=nach oben
3=nach unten
nr Bargraph-Nr. (1 bis 16)
x1, y2, x2, y2 umschließendes Rechteck
aw Anfangswert (0 bis 254)
ew Endwert (0 bis 254)
muster Füllmuster 0 bis 7


Bargraph setzen   Nach oben

    function barvalue(byte nr, byte value)

Mit der Funktion barvalue wird der Wert value des Bargraphs
mit Nummer nr gesetzt.

nr Nummer des Bargraphs (1 bis 16)
value Wert (>=aw & <=ew)


Makro-Befehle:


Makro ausführen   Nach oben

    function makro(byte art, byte nr)

Die Funktion makro ruft das Normal-, Touch bzw. Port-Makro
mit der Nummer nr auf.

art Art des Makros:
0=Normal Makro
1=Touch Makro
2=Port Makro
nr Makro Nummer (0 bis 255)


Makros automatisch ausführen   Nach oben

    function barvalue(byte mode, byte nr1, byte nr2, byte interv)

Mit der Funktion barvalue wird der Wert value des Bargraphs
mit Nummer nr gesetzt.

mode 0=zyklisch (n1...n2,n1...n2)
1=PingPong (n1...n2...n1)
nr1, n2 Makros nr1 bis nr2 ausführen
interv Intervall der Makros in 1/10sec


Menü-Befehle:


Menü definieren   Nach oben

    function menu(byte dir,byte posX,byte posY,byte sel,byte text[],byte length)

Die Funktion menu zeichnet ein Menü an posX, posY.

dir 0=horizontal; 1=vertikal
posX, posY Ausgabeposition
sel Nr. des aktuell invertierten Eintrags (beg. bei 1)
text[] String oder Byte-Array mit den Menüpunkten.
Die Einträge werden mit 0x7C(124) getrennt.
length Länge des Strings oder Byte-Arrays


Menübox invertieren   Nach oben

    function menuinvers()

menuinvers invertiert die gesamte Menübox des aktuellen Menüs.


Menüpunkt wählen   Nach oben

    function item(byte sel)

Die Funktion item selektiert den nächsten/vorherigen Eintrag
des aktuellen Menüs.

sel 0=vorheriger Eintrag; 1=nächster Eintrag


Menüende / Senden   Nach oben

    function menusend() returns byte

Die Funktion menusend entfernt das Menü vom LCD und gibt
den aktuell ausgewählten Eintrag (1...n) zurück.


Menüende / Makro   Nach oben

    function menumakro(byte nr)

Die Funktion menumakro entfernt das Menü vom LCD und führt
das Makro nr für Eintrag 1 aus, Makro nr+1 für
Eintrag 2 usw. aus.

nr Makro-Nr.


Menüende / Abbrechen
   Nach oben

    function menuabort()

Die Funktion menuabort entfernt das Menü vom LCD.


Tastatur-Befehle:


Taste definieren   Nach oben

    function button(byte dir, byte f1, byte f2, byte retCode, byte form, byte text[], byte length)

Die Funktion butten definiert eine Touchtaste.

dir Ausrichtung: 0=horizontal; 1=vertikal
f1 Begin Touch-Taste
f2 Ende Touch-Taste
retCode Rückgabewert 1 bis 255 (0=Taste nicht aktiv)
form 0=nichts; 1=löschen; 2=mit Rahmen
text[] Zeichenkette, die zentriert angezeigt werden soll
Zeilenwechsel durch 0x7C (dez:124)
length Länge der Zeichenkette


Touch-Tasten (P)Reset   Nach oben

    function touchactive(byte set)

Die Funktion touchactive aktiviert aufsteigend alle Felder bzw.
deaktiviert alle Felder.

set 0=alle Touch-Felder deaktiviert;
1=alle Touch-Felder aufsteigend aktiviert


Touchevent   Nach oben

    function touchevent(byte invers, byte beep)

Die Funktion touchevent bestimmt, ob die definierte Taste invertiert wird
und ob der Summer dabei piepst.

invers 0=kein Invertieren; 1=Taste wird invertiert
beep 0=kein Summer; 1=Summer piepst beim Berühren


Taste invertieren   Nach oben

    function invertbutton(byte button)

Mit der Funktion invertbutton wird die definierte Taste mit dem
Return Code button manuell invertiert

button Touch-Taste (Return Code)


Taste manuell abfragen   Nach oben

    function gettouch(byte button)

Die Funktion gettouch sendet die aktuell gedrückte Taste über RS232/422.

button Touch-Taste (Return Code)


Tasten-Abrage Ein/Ausschalten   Nach oben

    function touchreturn(byte set)

touchreturn schaltet die Tastenabfrage ein bzw. aus.

set 0=Abfrage deaktiviert
1=aktiviert; Tastendrücke werden autom. gesendet
2=aktiviert; Tastendrücke werden nicht gesendet
und müssen mit gettouch abgefragt werden


Kontroll-/Definitions-Befehle:


Blinkender Bereich   Nach oben

    function blinkarea(byte x1, byte y1, byte x2, byte y2)

Mit blinkarea wird ein blinkender Bereich definiert.
Die Blinkzeit wird mit blinktime eingestellt.

x1, y1 obere linke Ecke
x2, y2 untere rechte Ecke


Blinkzeit einstellen   Nach oben

    function blinktime(byte intervall)

Mit blinktime wird die Blinkzeit in 1/10 sec. eingestellt.

intervall 1 bis 15  in 1/10 sec.; 0=Blinkfunktion deaktiviert


Blink-Modus   Nach oben

    function blinkmode(byte mode, byte mst)

Die Funktion blinkmode legt den Blinkmodus fest.

mode 0=invers; 1= Muster mst
mst Blinkmuster 0 bis 7


Summer schalten   Nach oben

    function beeper(byte set)

Mit der Funktion beeper kann der Summer des LCDs manuell
ein bzw. ausgeschaltet werden.

set 0=aus; 1=ein; 2 bis 255= ein für set*1/10sec.


I²C-Bus lesen  Nach oben

    function i2cread(byte addr, byte mst)

Mit der Function i2cread kann auf den I²C-Bus des LCDs ein
Lesezugriff ausgeführt werden.
Die gelesenen Daten werden in dem Bytearray i2cbuf[] gespeichert.

addr Adresse des I²C-Bus Device
length Anzahl der zu empfangenen Bytes
0=1Byte; 1=2Byte ... 255 = 256Byte


I²C-Bus schreiben  Nach oben

    function i2cwrite(byte addr, byte mst, byte data[])

Mit der Function i2cwrite kann auf den I²C-Bus des LCDs ein
Schreibzugriff ausgeführt werden.

addr Adresse des I²C-Bus Device
length Anzahl der zu sendenden Bytes
0=1Byte; 1=2Byte ... 255 = 256Byte
data[] Datenbytes, die Übertragen werden sollen


Port-Befehle: (nur Option EA OPT8I8O)


Outport schreiben  Nach oben

    function outport(byte ports, byte set)

Mit der Funktion outport werden die Ausgangsports des LCDs beschrieben.

ports 0=alle Ports; 1 bis 8=Einzelports
set Bei ports=0 werden die Ports entsprechend set
gesetzt.
Einzelports: 0=rücksetzen; 1=setzen; 2=invertieren


Eingabe-Port lesen  Nach oben

    function inport(byte ports) returns byte

Die Funktion inport liest den Portzustand der Eingabe-Ports und
gibt diesen als Byte zurück.

ports 0=alle Ports; 1 bis 8=Einzelports


Automatische Portabfrage  Nach oben

    function portscan(byte set)

Die Funktion portscan aktiviert/deaktiviert die automatische
Portabfrage. Ist diese aktiviert, werden bei jeder Änderung
am Eingabeport entsprechend die Portmakros 0 bis 255 aufgerufen.

set 0=deaktiviert; 1=aktiviert


Eingabe-Port invers  Nach oben

    function portinvers(byte set)

Mit der Funktion portinvers kann die Logik des Eingabeports
invertiert weden.

set 0=normal; 1=invertiert

 


Author: André H.     Mail: andre.h@cc2net.de    Erstellt: 5.02.2002