ja habe das "make-lib.bat" ausgeführt.
das programm ist im first-try ordner. das sollte dann doch gehen oder?
ja habe das "make-lib.bat" ausgeführt.
das programm ist im first-try ordner. das sollte dann doch gehen oder?
okay sorry mein fehler, die funktion Go brauch 2 parameter. jetzt compiliert er es, aber er macht nicht das was er soll. er dreht sich nur in kreis, anstatt nach 90grad kurz zu stoppen. jmd ne idee?
sind meine werte in der myasuro evtl falsch?
In diese Erweiterte lib muss man auch noch die Funktion EncoderInit aufrufen dammit die Radencoders richtig Eingestellt werden. (BackLEDs aus, OdoLEDs an und automatische ADC Messungen mit Interrupt-betrieb) Das wird nicht in die unterlegende Funktion GoTurn gemacht. Die originale Lib Funktion "Go" ist nicht mehr in die Lib enthalten, aber ist eine Eingeschränkte Version von den erweiterte Funktion GoTurn.
Go ist definiert als GoTurn das nur gerade ausfahrt:
Code:#define Go(distance,speed) GoTurn(distance,0,speed)
Hallo Paul
Ich hatte genau das selbe ergebnis wie Du, er fuhr nur rueckwarts im Kreis.
Danke an Valen fuer den Hinweis der Initialisierung.
so funktionierts:
#include "asuro.h"
int main(void)
{
Init();
EncoderInit ();
while (1)
{
Go(100,100);
Turn(90,150);
Msleep(200);
Turn(120,250);
Msleep(200);
Go(300,100);
Msleep(1000);
}
return 0;
}
Gruss Asko.
Vorsicht !
Auf einer Kugel ist es von jedem Punkt aus abschuessig !
danke, ich werds morgen früh gleich ausprobieren
eine frage noch eben,
die parameter die an "go" übergeben werden, sind ja "distance" und "speed" , und was genau sagt das distance aus? wird der eingegebene wert von mir in mm oder cm gemessen? oder wie kann man das verstehen?
Hallo Paul
Das "distance" sind mm. Maximalwert ist +/- 360. Also kann er so max 36 cm fahren (pro ein befehl).
Ich hab das jetzt mal mit GoTurn ausprobiert. Aber irgendwas haut bei mir mit den Werten noch nicht genau hin.
kannst ja mal ausprobieren, was Dein Asuro dazu sagt.Code:#include "asuro.h" int main(void) { Init(); EncoderInit (); while (1) { GoTurn(100,0,160); GoTurn(0,90,160); Msleep(200); GoTurn(0,-180,160); Msleep(200); GoTurn(0,90,160); Msleep(200); GoTurn(200,0,160); Msleep(200); GoTurn(-300,0,160); Msleep(1000); } return 0; }
Auf jedenfall spielt hier schon der Schlupf der Raeder eine Rolle.
Ich haette nicht gedacht, dass das so auffaellt.
Gruss Asko.
Vorsicht !
Auf einer Kugel ist es von jedem Punkt aus abschuessig !
Lesezeichen