Wo liegt der fehler? - Asuro fährt nicht wie er soll
hallo, mein asuro fährt scheinbar willkürlich. ich glaube es liegt am code.
er soll, wie im bild beschrieben, erst gerade aus gegen eine wand fahren, dann einen 180° bogen rückwärts machen und dann wieder geradeaus gegen die nächste wand fahren. dann anhalten und aufhören.
ps: die odometrie geht nicht. beim bogen kommt es nicht auf genauigkeit an. ist erstmal nur grob.
Code:
#include <stdlib.h>
#include "asuro.h"
#define taste (!(PINC & (1<<PC4))) // Tastenabfrage
#define keine_taste (PINC & (1<<PC4))
void MSleep (int dauer)
{
int z;
for (z = 0; z < dauer; z++)
Sleep (36);
}
int main(void){
int i=0;
Init();
while(1) {
while (keine_taste) {
StatusLED(RED);
BackLED(OFF,OFF);
MotorDir(FWD,FWD);
MotorSpeed(120,152);
}
if (PollSwitch()>0){
while (i<30) {
BackLED(ON,ON);
MotorDir(RWD,RWD);
MotorSpeed(120,152);
i++;
MSleep(36);
}
MotorSpeed(0,0);
i=0;
while (i<250) {
MotorDir(RWD,RWD);
MotorSpeed(120,0);
i++;
MSleep(36);
}
BackLED(OFF,OFF);
MotorDir(FWD,FWD);
MotorSpeed(120,152);
i=0;
StatusLED(YELLOW);
if (PollSwitch()>0){
StatusLED(GREEN);
MotorSpeed(0,0);
while (1){
MotorSpeed(0,0);
}
}
}
}
}
http://www.picupload.net/s-8c871b060...4fbc54-jpg.php