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 > Hallo Horst, > also erst mal herzlichen Dank! > Es funktioniert einwandfrei. Das sind aber doch wirklich absolute basics die nirgendwo (Conrad) > vernünftig dokumentiert sind. Da bekomme ich doch schon etwas Bedenken ob ich mit der C-Control > für mein Projekt die richtige Wahl getroffen habe. Aber egal; so wie es aussieht, findet man hier in > diesem Forum schnelle und vor Allem kompetente Unterstützung. Es geht doch nichts über > funktionierende Communities. Ich hoffe, ich kann das wieder gut machen. > Nochmal vielen Dank an dich und an André für die Infrastruktur!!! > kerninger