Zitat Zitat von radbruch

Die Geschwindigkeiten und Drehrichtungen stimmen bei mir zwar nicht, weil mein asuro ein anderes Getriebe hat, aber dein Programm scheint grundsätzlich zu funktionieren:

Bild hier  
(Bild anklicken für youtube-Video)
Hi danke für eure Hilfe, jetzt klappt das flashen 1a da ich den Chip richtig drin hab!
Nun versuche ich den Kollisiontest in gang zu kriegen!
Als ich ihn starte fährt der Asuro auch munter drauf los, aber wenn er gegen z.B. eine Wand fährt bleibt er stehen(heck LED gehen) und dreht nicht!
An was kann das liegen?
Hier mein Code:
Code:
#include "asuro.h"

#define FULL_L 250
#define FULL_R 220

/* Motor vorwärts */
void MotorFwd(void)
{
  MotorDir(FWD,FWD);
  MotorSpeed(FULL_L,FULL_R);
}

/* Motor rückwärts */
void MotorRwd(void)
{
  MotorDir(RWD,RWD);
  MotorSpeed(FULL_L,FULL_R);
}

/* Motor rückwärts Links */
void MotorRwdL(void)
{
  MotorDir(RWD,RWD);
  MotorSpeed(FULL_L,0);
}

/* Motor rückwärts Rechts */
void MotorRwdR(void)
{
  MotorDir(RWD,RWD);
  MotorSpeed(0, FULL_R);
}

/* Motor stop */
void MotorStop(void)
{
  MotorSpeed(0,0);
}

int main(void)
{
  unsigned char t1, t2;

  Init();
  while (1)
  {
    t1 = PollSwitch();
    t2 = PollSwitch();
    if (t1 == 0 && t2 == 0)         /* keine Taste */
    {
      MotorFwd();          /* vorwärts fahren */
      FrontLED(ON);
      BackLED(OFF,OFF);
    }
    else if (t1 && t2 && t1 == t2)
    {
      MotorStop();
      if (t1 & 0x07) /* Tasten links gedrückt? */
      {
        MotorRwdL();       /* Rückwärtskurve links fahren */
        FrontLED(OFF);
        BackLED(ON,OFF);
      }
      if (t1 & 0x38) /* Tasten rechts gedrückt? */
      {
        MotorRwdR();       /* Rückwärtskurve rechts fahren */
        FrontLED(OFF);
        BackLED(OFF,ON);
      }
      Msleep(1000);        /* 1 Sekunde fahren */
    }
  }
  return 0;
}