Jetzt hat's geklappt.

Nur weicht er bei Abstand<15 immer noch auf die gleiche Seite aus.
Hier der Code:
Code:
#include "asuro.h" 
#include "ultrasonic.h"

int main(void) 
{ 
int abstand, sw, sw0, sw1, sw2;
unsigned char ocr = 0; 
unsigned char ocr1 = 0;

Init(); 

  while(1) 
 { 

sw0=PollSwitch();
sw1=PollSwitch(); 
sw2=PollSwitch();
ocr = TCNT0; 
ocr1 =ocr/2; 
ocr1 *=2; 
    
if ((sw0==sw1) && (sw0==sw2)) sw=sw0; else sw=0; 


MotorDir(FWD,FWD); 
MotorSpeed(150, 150); 

abstand = Chirp(); 
StatusLED(YELLOW); 

if (sw==32) 
   { 
   StatusLED(RED); 
    
   MotorDir(RWD,RWD); 
   MotorSpeed(150, 150); 
   Msleep(600); 

   MotorDir(FWD,RWD); 
   MotorSpeed(150, 150); 
   Msleep(600); 
   } 
if (sw==16) 
   { 
   StatusLED(RED); 
    
   MotorDir(RWD,RWD); 
   MotorSpeed(150, 150); 
   Msleep(600); 

   MotorDir(FWD,RWD); 
   MotorSpeed(150, 150); 
   Msleep(600); 
   } 
if (sw==8) 
   { 
   StatusLED(RED); 
    
   MotorDir(RWD,RWD); 
   MotorSpeed(150, 150); 
   Msleep(600); 

   MotorDir(FWD,RWD); 
   MotorSpeed(150, 150); 
   Msleep(600); 
   } 
if (sw==1) 
   { 
   StatusLED(RED); 
    
   MotorDir(RWD,RWD); 
   MotorSpeed(150, 150); 
   Msleep(600); 

   MotorDir(RWD,FWD); 
   MotorSpeed(150, 150); 
   Msleep(600); 
   } 
if (sw==2) 
   { 
   StatusLED(RED); 
    
   MotorDir(RWD,RWD); 
   MotorSpeed(150, 150); 
   Msleep(600); 

   MotorDir(RWD,FWD); 
   MotorSpeed(150, 150); 
   Msleep(600); 
   } 
if (sw==4) 
   { 
   StatusLED(RED); 
    
   MotorDir(RWD,RWD); 
   MotorSpeed(150, 150); 
   Msleep(600); 

   MotorDir(RWD,FWD); 
   MotorSpeed(150, 150); 
   Msleep(600); 
   } 

else if (abstand<15) 
   {
	   if (ocr == ocr1){ 
	   StatusLED(RED); 

	   MotorDir(RWD,RWD); 
	   MotorSpeed(150, 150); 
	   Msleep(600); 

	   MotorDir(RWD,FWD); 
	   MotorSpeed(150, 150); 
	   Msleep(600);
	   }
	   else
	    { 
	   StatusLED(RED); 

	   MotorDir(RWD,RWD); 
	   MotorSpeed(150, 150); 
	   Msleep(600); 

	   MotorDir(FWD,RWD); 
	   MotorSpeed(150, 150); 
	   Msleep(600);
	   }
   } 

else 
   { 
     StatusLED(GREEN); 
     MotorDir(FWD, FWD); 
     MotorSpeed(150, 150); 
    } 
 } 
  return 0; 
}