Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

Kommentar:
Einfügen von HTML im Kommentar:

Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a>
Bild einfügen: <img src="BILDURL">
Text formatieren: <b>fetter Text</b>  <i>kursiver Text</i> <u>unterstrichener Text</u>
Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b>
C2 Quellcode formatieren: <code>Quellcode</code>
ASM Quellcode formatieren: <asm>Quellcode</asm>
(Innerhalb eines Quellcodeabschnitts ist kein html möglich.)
Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst !  

> Hallo @all, > > > Für das CC2-Application-Board gibt es bisher noch kein Modul. > > Jedoch werde ich vielleicht eines in diesem Zuge schreiben,(appkeyb.c2) > > welches stkeyb.c2 gleicht, jedoch andere Konstanten für AD-Werte und > > die Input-Funktion auch etwas anders funzt, da hier schließlich nur > > 12Tasten verfügbar sind. :-) > > > Anbei ein Vorschlag für ein appkeyb-modul. > > Die fehlenden Funktionstasten sind in der > Input - Funktion durch ein Funktionsmodus > ersetzt worden, der durch die > Taste "*" eingeleitet wird. Der Cursor wechselt > dann von "_" zum Blinken. > > Es stehen folgende Funktionen zur Verfügung: > * = Alles löschen > 7 = Backspace > 8 = Mal minus Eins > 0 = Abbruch, Default-Wert zurückgeben > > Dann wechselt der Cursor wieder nach "_" > und weitere Ziffern können eingebeben werden, > ausser natürlich beim Abbruch. > > Gebt doch mal Rückmeldung, ob das was taugt. > > MfG Markus > > > > <code> > > const ENTER = 11; > const STAR = 10; > > int ExtPort; > int keycode; > > > > > function clearfigure(int i) > { > int j; > > for j = 1 ... i > { > lcdext.cursorleft(); > lcdext.put(0x20); > lcdext.cursorleft(); > } > > } > > > /***********************************/ > /* Get single Key # */ > /***********************************/ > function getkey ( ) returns int > { > // int keycode; > int adcval; > int oldval; > if ports.adc(7)>950 {keycode=255;return keycode;} > // let the adc value get stable > oldval=0; > while math.abs(oldval-ports.adc(7))>10 > {oldval=ports.adc(7);sleep 20;} > // decode the pressed key > adcval=ports.adc(7); > if adcval>852 {keycode=3;return keycode;} > if adcval>784 {keycode=6;return keycode;} > if adcval>718 {keycode=9;return keycode;} > if adcval>651 {keycode=11;return keycode;} > if adcval>584 {keycode=2;return keycode;} > if adcval>515 {keycode=5;return keycode;} > if adcval>446 {keycode=8;return keycode;} > if adcval>374 {keycode=0;return keycode;} > if adcval>301 {keycode=1;return keycode;} > if adcval>227 {keycode=4;return keycode;} > if adcval>150 {keycode=7;return keycode;} > if adcval>72 {keycode=10;return keycode;} > > } > > > > > /***********************************/ > /* Warten bis keine Taste gedrückt */ > /***********************************/ > function waitReleased() > { > wait getkey()==255; > } > > > > > > /*************************************************/ > // Zahleingabe mit der Folientastatur am AD-Port > // und externem Display (Application-Board) > // > // Funktionstasten: > // * = Funktions-Modus: > // (im Funktions-Modus blinkt der Cursor) > // * = Alles löschen > // 7 = Backspace > // 8 = Mal minus Eins > // 0 = Abbruch und Rückgabe des Default-Wertes > // > // # = Enter > // > // maxziff = Anzahl der Ziffern, die eingegeben > // werden können (2 bis 10) > // default = Wert, der nach Ablauf von timeout oder > // nach Abbruch zurückgegeben wird > // timeout = Milisekunden bis zum Abbruch der > // Funktion > /*************************************************/ > > > function input(byte maxziff, long default, long timeout) returns long > > {byte i, ckey; > long timer, value, key; > string zahl; > > str.clear(zahl); > value = default; > str.putlong(zahl, value); > > if maxziff<2 maxziff=2; > else > if maxziff>10 maxziff=10; > > lcdext.setcursor(2); // Cursor ist der Unterstrich "_" > > i = str.length(zahl); > > if i>maxziff value = 0; // Wenn die Defaultzahl mehr Stellen hat > // als maxziff, dann wird die Defaultzahl > // nicht berücksichtigt. > if value != 0 lcdext.print(zahl); > > > loop > { > timer=system.timer(); > > loop > { > key=getkey(); > if key!=255 break; > if system.timer()-timer>=timeout return default; // Timeout-Abbruch > yield; > } > plm.beep(10);sleep 40;plm.beep(-1); > > i = str.length(zahl); > if key<10 and i+1<=maxziff > { > if value>=0 value=value*10+key; else value=value*10-key; > str.clear(zahl); > str.putlong(zahl, value); > clearfigure(str.length(zahl)-1); > lcdext.print(zahl);} > else > > if key == ENTER // Enter > { > lcdext.setcursor(0); > return value; > } > else > > if key == STAR // Funktions-Modus > > > { > lcdext.setcursor(3); // Cursor blinkt > waitReleased(); > > do > { > ckey = getkey(); > } > while ckey == 255; > plm.beep(10);sleep 40;plm.beep(-1); > > lcdext.setcursor(2); > > if ckey == STAR //Alles löschen **************************** > { > if value != 0 > {str.clear(zahl); > str.putlong(zahl, value); > clearfigure(str.length(zahl)); > value=0; > } > } > > if ckey == 7 //Backspace ********************************** > { > if value != 0 > { > if value > -10 and value < 0 clearfigure(2); else clearfigure(1); > value = value/10; > str.clear(zahl); > str.putlong(zahl, value); > } > } > > if ckey == 8 //Mal minus Eins ******************************* > { > if value != 0 > { > value = value*(-1); > str.clear(zahl); > str.putlong(zahl, value); > if value<0 clearfigure(str.length(zahl)-1); > if value>=0 clearfigure(str.length(zahl)+1); > lcdext.print(zahl); > } > } > > if ckey == 0 //Default-Wert zurückgeben ****************** > { > lcdext.setcursor(0); > return default; > } //****************************************************** > > waitReleased(); > > } // if key == STAR > > wait getkey()==255; > > } // loop > } // function > > </code>
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB