PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rotate tut nicht



Luki.B.
04.09.2008, 14:49
Hallo Leute!
Ich habe den Robby RRP6 erst ganz kurz und schon mein erstes, ganz einfaches Programm hat einen Fehler den ich nicht finden kann:


/*
* File: rumfahren.c
* Author: janlukas
*
* Created on 10. August 2008, 10:01
*/

#include "RP6RobotBaseLib.h"

/*Soll den Roboter im Raum rumfahren
*und zurücksetzen
*und drehen lassen sobald er gegen etwas dagegen fährt dann weiter.
*/
int main(void)
{
initRobotBase();

mSleep(1000);
setLEDs(0b111111);
mSleep(1000);
setLEDs(0b000000);

powerON();

while (true)
{
task_Bumpers();

if (bumper_right)
{
move(50, BWD, DIST_MM(150), BLOCKING);
rotate(40, LEFT, 90, BLOCKING);
/*
task_motionControl();
task_ADC();
*/
}

if (bumper_left)
{
move(50, BWD, DIST_MM(150), BLOCKING);
rotate(40, RIGHT, 90, BLOCKING);
/*
task_motionControl();
task_ADC();
*/
}

moveAtSpeed(70, 70);
task_motionControl();
task_ADC();
}
return 0;
}


Der Roboter beginnt nachdem er geblinkt hat auch zu fahren und setzt züruck nachdem der bumper gedrückt wurde, dreht dann 90 Grad und stoppt kurz, dreht dann aber immer weiter. ](*,) ](*,)

Pr0gm4n
04.09.2008, 17:39
hi luki,

also zuerst verwende der übersicht halber doch bitte [code]-Tags um den code herum und nicht dann für deinen text ^^

dann zum problem:

ich selber sehe jetz grad kein problem, könnt aber sein dass ich wie schön öfters mal wieder blind bin...

was genau macht dein RP6 denn bei dem Code?

MfG Pr0gm4n

SlyD
04.09.2008, 18:27
Hallo,

Du musst vor
moveAtSpeed(70, 70);
noch ein changeDirection(FWD); einfügen, sonst wird die Drehrichtung von rotate beibehalten!
Das kann aber auch beides in die If Abfragen direkt nach rotate rein - das braucht man nicht ständig hintereinander aufrufen ;)

MfG,
SlyD

Luki.B.
05.09.2008, 11:38
THX, war wohl auch blind! O:)