Poste doch mal deinen Code. Meiner sieht so aus:
Code:
int poll = PollSwitch();
...
int switches[6] = { 0, 0, 0, 0, 0, 0 };
int i, switchValue;
for (i=0; i<6; i++) {
switchValue = power(2, (6-i-1));
if (poll-switchValue >= 0) {
switches[i] = 1;
poll -= switchValue;
}
}
Damit hab ich ziemlich genau die Werte der Taster. 0 = nicht gedrückt, 1 = gedrückt.
Softwareseitig beheben heisst in diesem Fall:
Probier aus, was du für Werte bekommst. Dazu einfach ein kleines Programm schreiben, das in einer Endlosschleife die Taster abfrägt (am besten nach jeder Abfrage eine Pause von 1000ms oder so) und über die IR Schnittstelle an den PC sendet.
Dort liest du im Hyperterminal die Werte ab und siehst dann, welchen Wert du für welchen Taster bekommst.
Am besten probierst du erstmal jeden Taster einzeln. Dann hast du die Einzelwerte (die bei gleichzeitigem Drücken nur addiert werden).
Wenn du die hast, kannst du deinen Code dementsprechent modifizieren.
Lesezeichen