Einfügen als Gemeinsames Modul
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 Modul
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= 3x4 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. |
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 |
0-9 | Ziffern zur Zahleneingabe | ||||||||||||
* | Backspace. Es wird die zuletzt eingegebene Ziffer gelöscht | ||||||||||||
# | Menü-Modus
|
Autor: André Helbig Mail: andre.h@cc2net.de
Erstellt: 17.4.2004