Hallo,
da ich keine Programmierkenntnisse bis jetzt in C habe, begann ich mich mit der Anleitung für C im Handbuch zum Asuro auseinanderzusetzen.
Gestern habe ich ein Programm geschrieben (oder besser einfach nur zusammengesetzt aus dem gelesenen) um meinen Kleinen einfach nur mal vorwärts fahren zu lassen. Läuft ohne Probleme.
Heute wollte ich dieses Programm erweitern um die Bedingung, wenn er irgendwo gegen fährt, sollen die Taster ein Signal liefern und die Motoren sollen sich auf 0,0 setzen, sprich stehen bleiben.
Folgendes habe ich geschrieben:
Das sind so die Anweisungen, die ich aus der Anleitung habe. Ich möchte, die IF prüft, ob die Variable taste einen Wert <0 hat, wenn ja, dann soll die Geschwindigkeit MotorSpeed auf 0,0 gesetzte und die BackLEDs eingeschaltet werden, wenn Variable taste nicht <0 ist soll er einfach vorwärtsfahren mit grüner StatusLED.Code:#include "asuro.h" int main (void) { Init(); unsigned char taste; taste = PollSwitch(); if (taste > 0); { MotorSpeed(0,0); BackLED(ON,ON); } MotorDir(FWD,FWD); MotorSpeed(120,152); StatusLED(GREEN); while(1); return 0; }
Die Bedingung scheint zu funktionieren, aber leider nicht korrekt, denn die BackLEDs leuchten auch beim normalen fahren, nehme ich die Anweisung raus, sind sie auch aus. Also er scheint in die Bedingung einzusteigen, leider aber laufen die Motoren weiter.
Wo liegt mein Denkfehler?
Gruß,
wendtdir
Lesezeichen