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 !  

> Grüss Euch, > > hier meine Version zur Zahleneingabe. Die Anpassung an > das Reglerboard sollte machbar sein. > > <code> > /******************************************************************/ > /* Tasterturauswertung Folientastertur 0-9, *, # am AD-Port */ > /* mit externem LCD, zweizeilig */ > /* Author : Markus Arndt (chmarndt@arcor.de) */ > /* Datum: : Januar 2004 */ > /* */ > /* BASIEREND AUF DEM */ > /* Alternativtreiber für C-Control II Tastaturauswertung */ > /* */ > /* Author : André Helbig (andre.h@cc2net.de) */ > /* Vorlage : André Helbig (andre.h@cc2net.de) */ > /* Version : 1.0 */ > /* Datum : 06. Juli 2003 */ > /* Getestet : ja */ > /* Benötigt : ports.c2, plm.c2, str.c2, lcdext.c2 ab V2.2 */ > /* */ > /******************************************************************/ > > const ENTER = 11; > const CLEAR = 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;} > > } > > > > > > > > /***********************************/ > /* Zahleingabe */ > /* Anzahl der Ziffern: 2 bis 10 */ > /* (maxziff=0 oder 1 geht nicht.) */ > /* */ > /* Funktionstasten: */ > /* * = Clear */ > /* # = Enter */ > /* */ > /* 0 als default-Zahl wird nicht */ > /* angezeigt, es erscheit also nur */ > /* der "_", wenn dann direkt # */ > /* eingegeben wird, wird 0 */ > /* als Ergebnis zurückgegeben. */ > /* Nach dem timeout wird die */ > /* default-Zahl zurückgegeben. */ > /***********************************/ > > function input(byte maxziff, long default, long timeout) returns long > > {byte i, key, cf; > long timer, value; > string zahl; > > str.clear(zahl); > value = math.abs(default); > str.putlong(zahl, value); > > if value == 0 cf = 0; else cf = 1; // verhindert mehrmaliges Löschen und Linksrücken des Cursors > > > 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 > { > > str.clear(zahl); > str.putlong(zahl, value); > i = str.length(zahl); > > key=getkey(); > > if key!=255 break; > > if system.timer()-timer>=timeout return value; // Timeout-Abbruch > > yield; > > } > plm.beep(10);sleep 40;plm.beep(-1); > > if key < 10 and i+1<=maxziff > {cf = 1; > 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 == CLEAR // Eingabe löschen > {if cf == 1 // mehrmaliger Aufruf von clearfigure wird > // unterbunden > { cf = 0; > > str.clear(zahl); > str.putlong(zahl, value); > clearfigure(str.length(zahl)); > > value=0; > } > } > > wait getkey()==255; > > } > } > > > > /* zum Beispiel ... ************************************************/ > > thread main > { > > int i,j,n,x; > lcdext.init(); > > loop > { > x = 0; > > lcdext.clear(); > lcdext.print("Addtion: Wie"); > lcdext.line(2); > lcdext.print("viele Zahlen: "); > n = input(1, 2, 50000); > sleep 700; > > for i=1 ... n > { > lcdext.clear(); > lcdext.print("Addtion ["); > lcdext.zahl2(i); > lcdext.print("/"); > lcdext.zahl2(n); > lcdext.print("]"); > lcdext.line(2); > > lcdext.delline(2); > lcdext.line(2); > lcdext.print("Zahl: "); > j = input(5, 0, 50000); > x = x + j; > sleep 700; > } > > lcdext.clear(); > lcdext.print("Ergebnis:"); > lcdext.delline(2); > lcdext.line(2); > lcdext.print("x = "); > lcdext.zahl(x); > i = input(1, 0, 50000); // mit # quittieren, dann geht es weiter. > sleep 700; > } > > } > > </code>
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB