Hallo
Hier der betreffende Ausschnitt aus der Datei test.c, ein Bestandteil des Selbsttests:
Code:
/* ---------------------- */
/* ----- Switch Test ---- */
/* K1 -> Status LED Green */
/* K2 -> Status LED RED */
/* K3 -> Line LED */
/* K4 -> Break LED Left */
/* K5 -> Break LED Rigth */
/* K6 -> Motor Left */
/* ---------------------- */
void SwitchTest(void)
{
unsigned char sw,tmp;
MotorDir(FWD,BREAK);
sw = PollSwitch();
StatusLED(OFF);
FrontLED(OFF);
BackLED(OFF,OFF);
MotorSpeed(0,0);
tmp = 0;
if (sw & 0x01)
MotorSpeed(200,0);
if (sw & 0x02) {
BackLED(OFF,ON);
tmp = ON;
}
if (sw & 0x04)
BackLED(ON,tmp);
if (sw & 0x08)
FrontLED(ON);
if (sw & 0x10)
RED_LED_ON;
if (sw & 0x20)
GREEN_LED_ON;
}
Code:
if (sw & 0x01)
MotorSpeed(200,0);
Prüft ob Bit 0 in der Tasterabfrage gesetzt ist und startet den linken Motor. Soweit alles richtig. Wenn nun beim Drücken der anderen Tasten auch der Motor startet, bedeutet das, dass die Tasterbits von PollSwitch() nicht richtig gesetzt werden. Einfach mal "pollswitch AND taster AND asuro" (ohne ") in der Forensuche eingeben.
Gruß
mic
Lesezeichen