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

Re: Tastatur Kategorie: CC2-Unit & Appl.Board / CC2-Station (von kerninger, http://www.kerninger.net - 13.01.2005 21:46)
Als Antwort auf Re: Tastatur von Horst - 13.01.2005 19:35
Ich nutze:
C-Control II Unit, CC2-Application-Board, OSOPT V3.0
> > 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:
> > wait keyboard.getkey()
> > wird glatt ignoriert. Mit dem Modul rbkeyb.c2 erhalte ich immerhin (teilweise) Werte mit
> > wait rbkeyb.get()
> > 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 ports. Mit der folgenden Funktion kannst du den Zustand ob und welche Taste
> gedrückt wurde abfragen:
>
>
> 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;
> }
>

>
> 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

Meine Seite: http://www.kerninger.net


    Antwort schreiben


Antworten: