OK habe die wait funktion entfernt aber triggerimpuls is keine variable sondern eine konstanten des Ports B.3 an den die Leitung für den Impuls angeschlossen ist. Aber so funktioniert es immernoch nicht.

Code:
void distanzmessen(){
    int entfernung = 0;
    triggerimpuls = 1;                          
    while((echoimpuls & 64) == 0);            
    while((echoimpuls & 64) == 64){
         entfernung++;   
    } 
    if(entfernung <= 10){
        Motorstop();
    }else if(entfernung > 10){
        Motorvor();
    }
}
aber was mich jetzt wundert wenn ich in dem ersten teil der if-schleife Motorvor() aufrufe passiert genauso wenig als wenn ich Motorvor() im zweiten teil aufrufe.Aber in einem von den zwei fällen müsste doch logischerweise etwas passieren.