ja die pollswitch funktion hat ne macke...
ist mir auch aufgefallen. ich hab das ganze noch ein wenig anders gelöst. es gibt beim roboterclub freiburg eine funktion (die untere auf der website namens KeyPressed()), die sicherer arbeitet als die pollswitch(). allerdingsliefert sie dir nur 0 (nicht gedrückt) und 1 (gedrückt) zurück, egal welcher schalter gedrückt ist.
ich hab die funktion bei mir eingebunden und dann meine tasterabfrage-funktion so gemacht:
damit frage ich zum einen ab, ob überhaupt ein taster gedrückt ist (über KeyPressed()) und zum anderen, welcher gedrückt ist (über PollSwitch()). und ich muss sagen, dass das so richtig gut und zuverlässig funktioniert.Code:/*Funktion zum Abfragen der 6 Taster; Liefert Wert zurück, je nachdem welcher Taster gedrückt ist*/ int Taster(void) { int t1,t2; while(1) { t1=KeyPressed(); t2=PollSwitch(); if ((t1==0x01)&&(t2==0x01)) return 6; //0b000001 else if ((t1==0x01)&&(t2==0x02)) return 5; //0b000010 else if ((t1==0x01)&&(t2==0x04)) return 4; //0b000100 else if ((t1==0x01)&&(t2==0x08)) return 3; //0b001000 else if ((t1==0x01)&&(t2==0x10)) return 2; //0b010000 else if ((t1==0x01)&&(t2==0x20)) return 1; //0b100000 else if ((t1==0x01)&&(t2!=0x01)&&(t2!=0x02)&&(t2!=0x04)&&(t2!=0x08)&&(t2!=0x10)&&(t2!=0x20)&&(t2!=0x00)) return 7; //mehr als eine Taste else return 0; } }
kann ich jedem nur empfehlen...
grüße, malediction...
Lesezeichen