Für dieses Forum muß Javascript im Browser aktiviert werden!
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 erstmal... > > Meine C-Control habe ich jetzt zwei Tage, bin also Anfänger. Das Forum hat mich bislang über das > > gröbste hinweggebracht; immerhin behersche ich schon mal das LCD-Display. OS-Installation usw. > > habe ich auch schon hinter mir. Mein Problem: Die Folientastatur (Drama). Ich habe mir hier im > > Forum schon einen Wolf gesucht und alles gelesen was dazu geschrieben wurde; klar ist mir leider > > nichts. Meine Frage: > > Welches Modul muss ich nun für die Folientastatur nehmen? Ich habe mittlerweile alle durch. Das > > keybord.c2 geht bei mir gar nicht. Ein Befehl: > > <code>wait keyboard.getkey()</code> > > wird glatt ignoriert. Mit dem Modul rbkeyb.c2 erhalte ich immerhin (teilweise) Werte mit > > <code>wait rbkeyb.get()</code> > > Wie ich die Umrechnen kann ist mir jedoch nicht klar (byte->int). Scheint aber auch der falsche > > Weg zu sein; wenn ich die Taste "3" drücke kommt gar nix. > > > > Wer kann einem verzweifelten Anfänger auf die Sprünge helfen, bitte? > > Grüße, kerninger > > > Hallo, > > die Folientastatur wird über den analoger Port abgefragt. Dazu brauchst du aus den Systemmodulen > das Modul <b>ports</b>. Mit der folgenden Funktion kannst du den Zustand ob und welche Taste > gedrückt wurde abfragen: > > <code> > function Taste() returns int > { > int u1, u2, key; > //warten bis eine Taste gedrückt wird > while (ports.adc(7)>900); > u1= ports.adc(7); > u2= ports.adc(7); > if (math.abs(u1-u2))< 4 > { > if u1<901 key=3;//3 > if u1<825 key=6;//6 > if u1<755 key=9;//9 > if u1<690 key=12;//# > if u1<620 key=2;//2 > if u1<550 key=5;//5 > if u1<480 key=8;//8 > if u1<410 key=0;//0 > if u1<335 key=1;//1 > if u1<270 key=4;//4 > if u1<190 key=7;//7 > if u1<110 key=11;//* > if u1>1000 key=-1; > } > sleep 100; > //warten bis Taste wieder losgelassen wurde > while (ports.adc(7) < 920); > return key; > } > </code> > > Der Port wird in einer Schleife 2 mal abgefragt und die beiden Werte verglichen um ein Prellen der Taste > möglichst auszuschließen. Die Funktion liefert dann erst den Wert der gedrückten Taste zurück wenn > die Taste wieder losgelassen wurde. > > Viel Erfolg beim Ausprobieren > > Gruß, Horst