MrBean93
10.08.2008, 10:23
Habe da ein Programm für den Asuro, das keine Errors enthält.
Normalerweise sollte es so funktionieren: Geradeaus fahren, Status LED auf Grün schalten, Vorderes LED einschalten. Wenn eine Kollision erfolgt, Motor Stoppen, Status LED auf Rot schalten, Vorderes LED Abschalten, über Infrarot Diode "AUA!" Senden.
#include "asuro.h"
int main(void) {
Init();
while (1) {
{StatusLED (GREEN);
FrontLED(ON);
MotorDir(FWD,FWD);
MotorSpeed (180,180);}
if (PollSwitch()>0) {MotorSpeed (0,0);
StatusLED (RED);
FrontLED(OFF);
SerWrite("AUA!", 4);
}
}
}
Trotzdem führt er das Prog. anders aus. Es ist etwa so, als würde er zwischen den 2 Blöcken "Fahrt" und "Kolision" hin und her springen. = Status LED Flackert, Vorderes LED Flackert, Motor zittert, "AUA!" wird permanent gesendet. Wenn mann einen Kollisionstaster drückt, Leuchtet das Front LED schwach, und das Status LED Fllackert glaub ich auch noch. (Das ist aber so schwach, dass man ganz genau hinsehen muss).
Gibt es da jetzt einen Fehler in der Programmierung oder ist ein Kollosionstaster oder der IC defekt?
Dann hätte ich noch eine Frage: Wie kann man eine Verzögerung Programieren, die länger als 1 Sekunde anhält?
Normalerweise sollte es so funktionieren: Geradeaus fahren, Status LED auf Grün schalten, Vorderes LED einschalten. Wenn eine Kollision erfolgt, Motor Stoppen, Status LED auf Rot schalten, Vorderes LED Abschalten, über Infrarot Diode "AUA!" Senden.
#include "asuro.h"
int main(void) {
Init();
while (1) {
{StatusLED (GREEN);
FrontLED(ON);
MotorDir(FWD,FWD);
MotorSpeed (180,180);}
if (PollSwitch()>0) {MotorSpeed (0,0);
StatusLED (RED);
FrontLED(OFF);
SerWrite("AUA!", 4);
}
}
}
Trotzdem führt er das Prog. anders aus. Es ist etwa so, als würde er zwischen den 2 Blöcken "Fahrt" und "Kolision" hin und her springen. = Status LED Flackert, Vorderes LED Flackert, Motor zittert, "AUA!" wird permanent gesendet. Wenn mann einen Kollisionstaster drückt, Leuchtet das Front LED schwach, und das Status LED Fllackert glaub ich auch noch. (Das ist aber so schwach, dass man ganz genau hinsehen muss).
Gibt es da jetzt einen Fehler in der Programmierung oder ist ein Kollosionstaster oder der IC defekt?
Dann hätte ich noch eine Frage: Wie kann man eine Verzögerung Programieren, die länger als 1 Sekunde anhält?