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."
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();
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:
else
{
// 90° Drehung
Drehung(180, 150);
}
Lesezeichen