Problem bei Tastenzustandserkennung

OP #2936337
Lesenswert?

Hallo! Ich stehe vor dem Problem, dass ich eine Tastenauswertung machen 
muss, wo ich die Signale (den Tastenwert) über Funk bekomme.

Der Tastendruck (ON / OFF) am Sender = Tastenwert 8 wird alle 200ms 
gesendet. Auf der Empfangsseite muss ich nun eine Auswertung machen, die 
erkennen soll ob die Taste betätigt wurde. Einmal drücken = OFF, ein 
weiteres mal = OFF usw.
1
else if (Taste == 8)
2
{           
3
    if ((Taste == 8) && (offcounter == 0))
4
    {
5
        OCR0SA = valuetable[0];    // red = 0
6
        OCR1SA = valuetable[0];    // blue = 0
7
        OCR1SB = valuetable[0];    // green = 0
8
  
9
        offcounter = 1;
10
    }
11
    if ((Taste == 8) && (offcounter == 1))
12
    {
13
        OCR0SA = valuetable[255];    // red = 100%
14
        OCR1SA = valuetable[255];    // blue = 100%
15
        OCR1SB = valuetable[255];    // green = 100%
16
  
17
        offcounter = 0;
18
    }
19
}

Mit diesem Code toggle ich nur zwischen den beiden Zuständen hin und 
her!
Kann mir da bitte jemand helfen?
#2936518
Lesenswert?

H. G. schrieb:
> Hallo! Ich stehe vor dem Problem, dass ich eine Tastenauswertung machen
> muss, wo ich die Signale (den Tastenwert) über Funk bekomme.

Ändert ja am Prinzip nichts.

> gesendet. Auf der Empfangsseite muss ich nun eine Auswertung machen, die
> erkennen soll ob die Taste betätigt wurde. Einmal drücken = OFF, ein
> weiteres mal = OFF usw.

ALso. Wenn ich in Gedanken aus dem zweiten OFF ein ON mache, dann hast 
du wahrscheinlich das gleiche gedankliche 'Problem', wie so viele vor 
dir:
Du unterscheidest nicht zwischen
* ist eine Taste gedrückt
* wird eine Taste jetzt, genau in diesem Moment, gedrückt.

Das sind 2 verschiedene Dinge.
Das erste erlebst du zb bei einem Rollo. Solange du den Taster 
niedergedrückt hältst, fährt das Rollo. Lässt du los, bleibt auch der 
Motor stehen.
Das zweite hast du zb bei einem Garagentor. Du drückst einmal drauf und 
der Motor setzt sich in Bewegung. Du drückst nochmal drauf und der Motor 
bleibt stehen.


Der Unterschied zwischen den beiden besteht darin, dass im zweiten Fall 
der Taster auch wieder LOSGELASSEN werden muss, ehe dann das nächste 
Niederdrücken eine nächste Aktion auslösen kann.
#2936522
Lesenswert?

H. G. schrieb:
> Der Tastendruck (ON / OFF) am Sender = Tastenwert 8 wird alle 200ms
> gesendet.
D.h. die Taste wird gedrückt und solange sie gedrückt ist, wird alle 
200ms der Status gesendet?
Und was passiert, wenn die Taste losgelassen wird?
Wird dann etwas anderes gesendet oder wird einfach einfach gar nichts 
gesendet?

Für ersteres ist die Auswertung ja wohl nicht besonders schwierig. Bei 
letzterem ist das Losgelassen-Kriterium, daß 200ms nichts gesendet 
wurde. Das musst du auswerten.

mfg.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren