Hallo Leute!

Ich habe mal wieder eine Frage.
Und zwar: Ich möchte gerne, dass der Roboter nur solange eine Funktion durchführt, bis er auf ein Hindernis stößt (10 cm Entfernung). Danach soll sich der Yeti drehen und dann wieder solange eine bestimmte Funktionsabfolge machen, bis er wieder auf ein Hindernis, in 10 cm Entfernung stößt.
Ich habe jetzt einen Quellcode geschrieben, der leider so nicht funktioniert.
Code:
/----------------------------------------------------------------------
// Titel     : Yeti, Yeti, Yeti
//----------------------------------------------------------------------
// Funktion  : Der Yeti läuft, lässt seine Augen leuchten, tanzt und macht TÖne
// Schaltung : Yeti und mySmartUSB
//----------------------------------------------------------------------
// Prozessor : Atmega8
// Takt		 : 8 MHz
// Sprache   : C
// Datum     : April 2010
// Version   : 1.0
// Autor     : Mandy 
//----------------------------------------------------------------------

#include "yeti.h"                       // Lade Definitionen und Funktionen des Yetis
#include "yetimove.c"                   // Lade Definitionen und Funktionen der Yetibewegungen
#include "ultrasoon.c"					// Lade Definitionen und Funktionen der Ultraschallsensoren

//	Start der "Main- Methode"
//================================================================================
int main(void)
{

	//Initalisierung der Variablen
	int i;
	DDRC=0x00;


	vInitYeti();                        	// initalisiert alle Mikrocontrollerfunktionen des Yetis
	vInitUltrasoon(); 

	// Tonabfolge
	vBeep(400,80);
	vBeep(520,80);
	vBeep(360,80);
	vBeep(580,80);


	vStandUpright();                    	// Yeti stellt sich in die Ausgangsposition
	vCalibrateServos();                 	// Kalibrierung der Servos
	vStandUpright();                    	// Yeti stellt sich in die Ausgangsposition
	vWaitMilliseconds(1000);

	while(1)                            	// Start einer Unendlichschleife: Der Yeti wiederholt das Folgende bis er ausgeschaltet wird.
	{
	
	    if(ucGetObjectDistanceInCentimeters()<=10)
		{
			// DAS HINDERNIS IST NAHE, WAS SOLL ICH TUN?!			
			
			vFrontLEDs(BOTH);				// Schaltet beide LEDs des Yetis an
			vFrontLEDs(OFF);				// Schaltet beide LEDs des Yetis aus
			vWaitMilliseconds(1000);		// Wartet 1 s
			vFrontLEDs(BOTH);				// Schaltet beide LEDs des Yetis an
			
			
			//Tonabfolge
			vBeep(580,120);
            vBeep(400,150);
            vBeep(520,120);
			
            vTurnLeftXSteps(6,true);        // Lässt den Yeti 6 Schritte nach links drehen
            vBeep(460,80);                  // Lässt den Yeti einen Ton erzeugen
	    
		}
		

		else
		{	
			// DAS HINDERNIS IST WEIT WEG
			// LAUFEEEEEEEEEEEEN!!!
			
			vFrontLEDs(LEFT);               // Schaltet das linke Auge des Yetis an
			vMoveForwardXSteps(8);          // Lässt den Yeti 8 Schritte vorwärts laufen
			vBeep(400,80);                  // Lässt den Yeti einen Ton erzeugen
			vFrontLEDs(RIGHT);              // Schaltet das rechte Auge des Yetis an
	
			vBeep(360,80);                  // Lässt den Yeti einen Ton erzeugen
			vMoveBackwardXSteps(8);         // Lässt den Yeti 8 Schritte rückwärts laufen
	
			vBeep(650,80);                  // Lässt den Yeti einen Ton erzeugen
			vFrontLEDs(BOTH);               // Schaltet beide Augen des Yetis an
	
			vStandUpright();                // Yeti stellt sich in die Ausgangsposition
	
			for(i=0;i<4;i++)                // Zählschleife: Wiederholt das Folgende 4x
			{
				vBeep(520,80);              // Lässt den Yeti einen Ton erzeugen
				vFrontLEDs(LEFT);           // Schaltet das linke Auge des Yetis an
				vMoveBody(12,10);           // Bewegt den Yeti nach links
	
				vBeep(580,80);              // Lässt den Yeti einen Ton erzeugen
				vFrontLEDs(RIGHT);          // Schaltet das rechte Auge des Yetis an
				vMoveBody(-12,10);          // Bewegt den Yeti nach rechts
				vMoveBody(0,10);            // Bewegt den Yeti in Ruheposition
			}                               // Ende der Zählschleife
	
			vBeep(420,80);                  // Lässt den Yeti einen Ton erzeugen
			vFrontLEDs(OFF);                // Schaltet beide Augen des Yetis aus
	
			vStandUpright();                // Yeti stellt sich in die Ausgangsposition
			
		}
	   
	}                                   	// Ende der Unendlichschleife: Startet die Unendlichschleife von vorne
	return 0;   
}                      					  	// Verlässt die Main
Kann mir bitte jemand helfen? [-o<

MFG
Mandy