Hallo
Wenn die Zuordnung der Taster zu den jeweiligen Bits im Ergebniss von PollSwitch() nicht stimmt kann man das in der Datei asuro.c am Ende der Funktion PollSwitch() kalibrieren:
http://www.asurowiki.de/pmwiki/pmwiki.php/Main/Tasten
https://www.roboternetz.de/phpBB2/ze...=419056#419056
Trotz richtig kalibrierten Tasten können die Werte noch schwanken, deshalb sollte man das Ergebniss von PollSwitch() überprüfen:
So funktioniert es nicht:Code:sw1=PollSwitch(); sw2=PollSwitch(); if(sw1==sw2) { if(sw1 & 1) {} // K6 if(sw1 & 2) {} // K5 ... if(sw1 & 32) {} // K1 }
Weil es für eine rote Statusled ausreicht, wenn entweder in sw1 oder in sw2 Bit0 gesetzt ist. Das ist z.B. auch bei der Kombination sw1=0b111111 und sw2=0 der Fall. Korrekt wäre diese Formulierung:Code:sw1 = PollSwitch(); sw2 = PollSwitch(); if ((sw1 & 0b000001) || (sw2 & 0b000001)){ StatusLED(RED); }
GrußCode:sw1 = PollSwitch(); sw2 = PollSwitch(); if ((sw1 & 0b000001) && (sw2 & 0b000001)){ StatusLED(RED); }
mic







Zitieren

Lesezeichen