Vielen Dank orusa!
Ich habs asuprobiert, allerdings zeigt auch jetzt der Asuro keine Reaktion, wenn die Taster gedrückt werden... woran könnte das nur liegen?
Druckbare Version
Vielen Dank orusa!
Ich habs asuprobiert, allerdings zeigt auch jetzt der Asuro keine Reaktion, wenn die Taster gedrückt werden... woran könnte das nur liegen?
Ich habs nun hingekriegt! Ich hab einfach nur vergessen vorm konvertieren zu speichern! (ich dulli :D) Das Programm kalppt nun ausgezeichnet! Vielen Dank!
Nun muss ich nur noch diese Sache mit der 90° Drehung einbauen, aber das krieg ich schon alleine hin. (hoffe ich jedenfalls).
PS: Sry wegen Triple Post aber das musste sein :D
das return müsste hinter die while(1)-Schleife. Das Programm wird durch das return 0; beendet. Also so:
Code:#include "asuro.h"
int main(void)
{
Init();
while(1)
{
if (PollSwitch()==0)
{
MotorDir(FWD,FWD);
MotorSpeed(150,170);
BackLED(ON,ON);
FrontLED(ON);
StatusLED(GREEN);
}
else
{
MotorDir(FWD,FWD);
MotorSpeed(0,0);
StatusLED(RED);
}
}
return 0;
}
mfg liggi
Hallo liggi,
das Programm wird nicht durch das return 0 beendet, es wird in der while-schleife 'gefangen'!.
return 0 ist im Programm drinn, weil main int ist.
ich glaube es ist egal, wie oft es aufgerufen wird.
Chrissi
in den Beispielprogramme in der AsuroManual.pdf steht das return 0; immer hinter der while(1)-Schleife.
Lass mal das Programm auf einen PC laufen:
mfg liggiCode:#include <stdio.h>
#include <stdlib.h>
int main()
{
while(1)
{
printf("Hello world!\n");
return 0;
}
}
Hallo liggi,
Es war nur eine vermutung, ich kenne mich da nicht so gut aus!
mfg Chrissi
hallo zusammen
das return 0; muss unbedingt hinter die while-schleife
mit dem befehl return wird die aktuelle funktion (hier main) beendet und es wird ein wert zurück gegeben. in diesem falle wird nur die main beendet, aber dann ist nicht sicher zu sagen was der prozessor weiter macht, da er keine anweisungen mehr hat
wenn man wie in diesem fall int main() schreibt, muss man auch ein return hinen schreiben! aber eben erst am schluss!