Ich habe nun auch ein erstes Programm geschrieben, jedoch habe ich eine Frage zur doppelten Abfrage der PollSwitch Funktion. Kann ich dies mit || ,, && oder ++ bewältigen?
Mein Problem die Störgeräusche der Asuro Motoren.
Hier noch das Programm:
Code:
#include "asuro.h"
//Tasten
#define K6 PollSwitch()==1 //Taste 6
#define K5 PollSwitch()==2 //Taste 5
#define K4 PollSwitch()==4 //Taste 4
#define K3 PollSwitch()==8 //Taste 3
#define K2 PollSwitch()==16 //Taste 2
#define K1 PollSwitch()==32 //Taste 1
//Tasten Kombinationen
#define K65 PollSwitch()==3 //Taste 6+5
#define K54 PollSwitch()==6 //Taste 5+4
#define K43 PollSwitch()==12 //Taste 4+3
#define K32 PollSwitch()==24 //Taste 3+2
#define K21 PollSwitch()==48 //Taste 2+1
#define K52 PollSwitch()==18 //Taste 5+2
#define K5432 PollSwitch()==30 //Taste 5+4+3+2
//Warten
#define WAIT1 for (i=0; i<1000; i++) {Sleep(72);} //1 Sekunde
#define WAIT2 for (i=0; i<400; i++) {Sleep(72);} //0.5 Sekunde
//Fahrten
#define VORWERTS StatusLED(GREEN); BackLED(ON,ON); MotorDir(FWD,FWD); MotorSpeed(124,120);
#define LINKS StatusLED(YELLOW); BackLED(OFF,ON); MotorDir(RWD,RWD); MotorSpeed(124,120); WAIT1; MotorDir (FWD,RWD); WAIT2; MotorSpeed(0,0); WAIT1;
#define RECHTS StatusLED(RED); BackLED(ON,OFF); MotorDir(RWD,RWD); MotorSpeed(124,120); WAIT1; MotorDir (RWD,FWD); WAIT2; MotorSpeed(0,0); WAIT1;
int main(void)
{
unsigned int i;
Init();
StatusLED(GREEN);
BackLED(ON,ON);
MotorDir(FWD,FWD);
MotorSpeed(124,120);
while (1) {
if (K6)
{RECHTS}
else if (K5)
{RECHTS}
else if (K4)
{RECHTS}
else if (K3)
{LINKS}
else if (K2)
{LINKS}
else if (K1)
{LINKS}
else {VORWERTS}
}
}
Lesezeichen