RBKEYB.C2 V2.0 - Hilfe


Beschreibung

Einfügen als Gemeinsames Modul

Konstanten

Funktionen:

init()
get()
waitReleased()
Released()
input()


Beschreibung   Nach oben

Das Modul rbkeyb.c2 ist ein Treiber für eine Tastatur am 1x12 Tastatur-AD-Adapter
oder am Matrix-Tastatur-AD-Adapter von CCTools.
Es ermöglicht die einfache Auswertung von Eingaben.


Einfügen als Gemeinsames M
odul
   Nach oben

Die Datei rbkeyb.c2 in das Verzeichnis .\CControl2\UserLib kopieren und in der Datei modules.txt
die Zeile rbports.c2 unterhalb der LCD-Module einfügen.
Ein zusätzliches Ausrufezeichen unmittelbar nach einem Modulnamen in modules.txt bestimmt,
daß das Modul in jedem neuen Projekt von Anfang an aktiviert wird.


Konstanten   Nach oben


Diese Konstanten werden von der Funktion input() benötigt

// Einsprung-Adressen der System-Routinen:
// Bei Verwendung mit rblcd.c2:
/*const Segment = rblcd.Segment; //Flash-Segment
const _PUT = rblcd._PUT;
const _PRINT = rblcd._PRINT;
const _SENDCHAR = rblcd._SENDCHAR;
const _CMD = rblcd._CMD;//*/


// Bei Verwendung mit lcdext.c2 ab V2.25:
const
Segment = lcdext.Segment; //Flash-Segment
const
_PUT = lcdext._PUT;
const
_PRINT = lcdext._PRINT;
const
_SENDCHAR = lcdext._SENDCHAR;
const
_CMD = lcdext._CMD;//*/

Wird das Modul rbkeyb.c2 zusammen mit lcdext.c2 benutzt (z.B. auf dem CC2-StarterBoard
oder bei eigenen Schaltungen), so müssen die Einsprungadressen mit den Verweisen 
auf rblcd.c2 auskommentiert werden.
Wird das Modul mit rblcd.c2 verwendet (z.B: auf dem CC2-ReglerBoard), so müssen
die Verweise auf lcdext.c2 auskommentiert werden.

const ADport=7; // AD-Port für Tastaturinterace
const s1x12=75; // Steigungsfaktor für 1x12 Tastatur-Adapter
const
o1x12=40; // Offset für 1x12 Tastatur-Adapter
const
keys1x12[]= 0x2A,0x37,0x34,0x31, //ASCII-Codes der Tasten
                  0x30,0x38,0x35,0x32, //Abweichungen bei versch. 1x12
                  0x23,0x39,0x36,0x33; //Tastaturen möglich, ggf. anpassen
const val4x4[]=  40,105,170,235, //AD-Werte für Matrix-Tastatur-Adapter
                305,370,435,500,
                570,635,700,765,
                835,900,965,1020;
const keys4x4[]= 0x33,0x32,0x31,0x01, //ASCII-Codes for 3x4 Matrix
                 0x36,0x35,0x34,0x02, //für 4x4 Matrix entsprechend
                 0x39,0x38,0x37,0x03, //anpassen
                 0x23,0x30,0x2A,0x04;

const
F1=1; //Nur bei 4x4 Tastatur
const
F2=2; //Nur bei 4x4 Tastatur
const
F3=3; //Nur bei 4x4 Tastatur
const
F4=4; //Nur bei 4x4 Tastatur
const ENTER=0x23;
const
BACKSPC=0x2A;


Funktionen:

init()   Nach oben

    function init(byte Interface, byte beep)

Mit init() wird der Tatsturadapter und die verwendete Tastaturart ausgewählt.
Diese Funktion muß einmalig vor der ersten Verwendung der Funktionen
aufgerufen werden.

Interface Tastatur-Interface/-Art:
0= 1x12
1= 3x4 an Matrix-Tastatur-AD-Adapter
2= 4x4 an Matrix-Tastatur-AD-Adapter
beep Tonausgabe bei Tastendruck in input()
0= keine Ausgabe, !=0 =Tonausgabe


der Wert der aktuell gedrückten Taste zurückgegeben. Bei den Ziffern
wird entsprechend 0 bis 9, bei den Funktionstasen F1 bis F3 10 bis 12,
bei Enter 14 und Clear 13 zurückgegeben.
Ist keine Taste gedrückt, wird der Wert 255 zurückgegeben.

get()   Nach oben

    function get() returns byte

Mit get() wird die Tastatur direkt abgefregt. Als Rückgabewert wird
der ASCII-Code der aktuell gedrückten Taste zurückgegeben. Bei den Ziffern
wird entsprechend 0x30 bis 0x39, bei weiteren Tasten entsprechend den festgelegeten
Werten im Konstantenarray, bei # 0x23 und * 0x2A zurückgegeben.
Ist keine Taste gedrückt, wird der Wert 0 zurückgegeben.


waitReleased()
   Nach oben

    function waitReleased()

Die Funktion waitReleased() wartet solange, bis keine Taste mehr gedrückt ist.


Released()   Nach oben

    function Released() returns int

Diese Funktion gibt zurück, ob eine Taste gedrückt ist oder nicht.
Es wird True(-1) zurückgegeben, wenn eine Taste gedrückt wird, und False(0),
wenn keine Taste gedrückt ist.



input()
   Nach oben

    function input(byte maxziff, long default, long timeout) returns long

Die Funktion input() dient zur komfortablen Eingabe von Zahlenwerten.
Durch die Parameter kann die maximale Anzahl der Ziffern festgelegt werden.
Außerdem kann ein Default-Wert, der beim Abbruch der Eingabe zurückgegeben wird,
und ein Timeout in ms angegeben werden, nach welcher Zeit ohne Eingabe, diese 
abgebrochen werden soll.
Es ist die Eingabe von maximal 10 Ziffern möglich. Durch verwenden der Funktionstasten
können auch negative Zahlen eingegeben werden. Dabei ist zu beachten, daß das
Minus-Zeichen auch als Ziffer zählt.
Die Eingaben werden auf dem LC-Display ab der aktuellen Position ausgegeben.
Es sind Korrekturen während der Eingabe ähnlich wie Backspace mit einer der
Funktionstasten und Clear möglich. Diese wirken sich auch auf das LC-Display aus.
Die eingegebene Zahl wird nach Drücken der Taster Enter zurückgegeben.

maxziff max. Anzahl der Ziffern: 1 bis 10
default Standard-Wert, der bei einem Abbruch (durch Benutzer oder
Timeout) zurückgegeben werden soll.
timeout Zeit in ms, nach der die Eingabe nach dem letzten Tastendruck
automatisch abgebrochen wird.


Tastenfunktionen bei Verwendung einer 4x4-Tastatur:
0-9 Ziffern zur Zahleneingabe
F1 Wert negieren (aus einer pos. Zahl wird eine negative und 
umgekehrt)
F2 Clear. Es werden alle eingegebenen Ziffern gelöscht
F3 Abbruch der Eingabe. Es wird der Wert default zurückgegeben
* Backspace. Es wird die zuletzt eingegebene Ziffer gelöscht
# Bestätigung der Eingabe und Rückgabe der eingegebenen Zahl

Tastenfunktionen bei Verwendung einer 3x4- oder 1x12-Tastatur:
0-9 Ziffern zur Zahleneingabe
* Backspace. Es wird die zuletzt eingegebene Ziffer gelöscht
# Menü-Modus
0 Bestätigung der Eingabe und Rückgabe
der eingegebenen Zahl
1 Clear. Es werden alle eingegebenen Ziffern gelöscht
2 Wert negieren
3 Abbruch der Eingabe. Es wird der Wert default zurückgegeben
* nächster Menüpunkt
# Auswahl bestätigen




Autor: André Helbig   Mail: andre.h@cc2net.de    Erstellt: 17.4.2004