Entprellung der Taster, einer von unzähligen Threads zu diesem Thema:
http://www.arexx.com/forum/viewtopic.php?f=19&t=1544
[Edit]
Zu: "Dabei habe ich bis auf ganz wenige einzelne Fehler fast nur richtige Werte bekommen."
Jeder PollSwitch()-Fehler in der zaehler++ -Schleife würde dazu führen, dass die If-Bedingung erfüllt wird. Anschließend wird bei Zaehler = PollSwitch(); wieder der viel häufigere richtige Wert der Tasten eingelesen. Ist dieser dann nicht 1 oder 32 landet deine if-else-Kette hier:Code:// Teste auf Kollision for (i=0; i<5; i++) { if (PollSwitch() != 0) Zaehler++; Msleep(1); } // Ist der Zaehler größer als 1, so liegt eine Kollision vor // In diesem Fall muss anhand des Pollswitch-Wertes, der auf Zaehler übergeben wird // unterschieden werden wie zu reagieren ist. if (Zaehler > 1) { Zaehler = PollSwitch();
Code:else { // 90° Drehung Drehung(180, 150); }







Zitieren

Lesezeichen