Hallo
Hier mal mein Ansatz:
Code:
/* asuro fährt nach Anstoss einstellbare Zeit zurueck
mic 3.1.2007
*/
#include <asuro.h>
unsigned long zurueckzeit; // Zeit Rueckwaerts in Millisekunden
unsigned char sw; // Zwischenspeicher für Schalter k1-k6
int main(void) {
Init();
zurueckzeit=0; // vorwärts losfahren
MotorDir(FWD,FWD);
MotorSpeed(150,150);
/* Achtung! Das funzt nur wenn die Taster richtig erkannt werden,
sonst bleibt der asuro auf freier Strecke stehen!
*/
do {
sw=PollSwitch(); // Schalter einlesen und für eine Runde speichern
if (!zurueckzeit && ((sw==2) || (sw==16))) {
zurueckzeit=Gettime()+1000; // Aktuelle Zeit plus x millisek. zurueck
MotorSpeed(0,0);
MotorDir(RWD,RWD); // Bei unterschiedlichen Geschwindigkeiten
MotorSpeed(100,100); // dreht der asuro beim Zurueckfahren ;-)
}
if (zurueckzeit && (Gettime() > zurueckzeit)) { // Lange genug zurueck?
MotorSpeed(0,0);
MotorDir(FWD,FWD);
MotorSpeed(150,150);
zurueckzeit=0;
}
}while (1); // mainloop (Endlosschleife)
return 0;
}
(Ich werte hier nur zwei Taster aus wegen der Störimpulse der Mots)
@AxelZ: Ich denke, dass asuro-Buch wäre für dich das Richtige
Gruß
mic
Lesezeichen