OK , hier ist der Code :

Code:
#include "asuro.h"


void InitUlrasonics(void)
{
	// Change Oscillator-frequency of Timer 2
	// to 40kHz, no toggling of IO-pin:
	TCCR2 	= (1 << WGM21) | (1 << CS20);
	OCR2 		= 100;					// 40kHz @8MHz crystal
	
	ADCSRA 	= (0 << ADEN);	// ADC deaktivieren
	
	// Analog Comparator einstellen:
	ACSR 	= (1 << ACIS1);		// Comparator Interrupt on Falling Output Edge
	ADMUX	= 0x03;						// ADC3-Eingang mit Komparator verbinden
	SFIOR	|= (1 << ACME);		// ADC Multiplexer mit Komparator verbinden
	DDRD 	&= ~(1 << 6);			// Port D Pin 6 als Eingang schalten (AIN0)
}



int Chirp(unsigned char flag)
{
	// Variablen definieren
	unsigned int sleeptime = 0, dist = 0;
	
	
	if(flag)
		InitUlrasonics();
	
	// Chripen:
	count72kHz = 0;
	
	while(count72kHz != 20) {
		OCR2 = 100 + 20 / 2 - count72kHz;
	}
	
	TCCR2	= (1 << WGM21) | (1 << CS20);
	OCR2	= 100;
	
	
	// Echos auswerten:
	for(;;) {
		Sleep(1);
		sleeptime += 1;
		if((ACSR & (1 << ACI))) {
			dist = (unsigned int) ((long) ((344L * ((sleeptime * 1000L) / 72L) / 10000L) / 2L));
			ACSR |= (1 << ACI);
			break;
		}
		
		ACSR |= (1 << ACI);
		
		if(sleeptime > 3500) {
			return -1;
		}
	}
	
	//if(flag)
		//ReinitAsuro();
	
	return dist;
}


int main(void)
{
	// Variablen
	int chirpData = 0;
	int speed =200;
	
	// Asuro initialisieren
	Init();
	
	
	for(;;) {
		chirpData = Chirp(TRUE);
		
		if(chirpData>21){
			MotorDir(FWD,FWD);
			
			MotorSpeed(speed,speed);
			}
			else
			{
			MotorDir(RWD,RWD);
			MotorSpeed(100,speed);
			}
		
	
	}
	
	return 0;
}
Der Code der Ultrasonics.h von luma

Code:
/*******************************************************************************
* Dateiname:	ultrasonics.h
* Projekt:		Erweiterte Asurobibliothek
* 
* 
* 
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or any later version.
* 
* 
* Kleine Funktionsbibliothek, mit welcher man die Ultraschall-
* Erweiterungsplatine für Asuro betreiben kann.
* 
* 
* @version 1.0.0
* @since 13.08.2005
* @author Luma
*******************************************************************************/



#ifndef ULTRASONICS_H
#define ULTRASONICS_H

#include "asuro.h"



/**
 * Konfiguriert den Asuro so, das er die Ultraschall-Erweiterungsplatine in
 * Betrieb nehmen kann. Hinweis: Diese Funktion wird automatisch von der
 * Funktion Chirp aufgerufen und sollte sonst nicht verwendet werden.
 */
void InitUlrasonics(void);


/**
 * Diese Funktion wird aufgerufen, wenn man den Asuro wieder zurückstellen
 * will. (Das geschieht normalerweise nach einem "Chirp".). Auch diese
 * Funktion sollte sonst nicht verwendet werden.
 * 
 */
void ReinitAsuro(void);


/**
 * Sendet einen sogenannten "Chirp". Ist flag true (also = 1), so wird der
 * Asuro nach dem Chrip wieder zurückgestellt, damit man wieder wie gewohnt
 * alle Funktionen verwenden kann (während eines Chirps ist es z. Bsp. nicht
 * möglich über USART Daten zu schicken/empfangen, da der ADC deaktiviert werden
 * muss). Tritt irgendein Fehler auf, oder kann nicht gemessen werden, gibt
 * die Funktion -1 zurück.
 * 
 * @param	flag								Ist flag true wird der Asuro nach jedem Chirp
 *														wieder zurückgestellt und vor dem Chirpen,
 *														umkonfiguriert. Ist flag false so kann man
 *														mit den Funktionen InitUlrasonics sowie
 *														ReinitAsuro Asuro entweder zum Chirpen oder
 *														zum "Normalbetrieb" umkonfigurieren. flag auf
 *														true zu setzen wird empfohlen wenn man nur
 *														einzelne Messung macht.
 * @return										Gibt die gemessene Strecke in [cm] zurück
 */
int Chirp(unsigned char flag);

#endif
Danke schonmal für die Hilfe

Oliver