Hi,
ich habe jetzt jeden Aufruf von mSleep() durch einen Aufruf einer Stopwatch und einer while-Schleife erstzt, das Ergebniss war aber das gleiche.
Deshalb habe ich geschaut ob die Funktion setACSPwr...() eventuell nicht schnell genug reagiert und siehe da, folgender Code brachte die Ausgabe GarnichGarnichtGarnicht........

Code:
#include "RP6RobotBaseLib.h"

void warte()
{
    setStopwatch1(0);
    startStopwatch1();
    while (getStopwatch1()<1000)
        task_ACS();
}
void STDStart()
{
    initRobotBase();
    mSleep(1000);
    setLEDs(0b111111);
    mSleep(1000);
    setLEDs(0b000000);
    powerON();
    
}

int main()
{
    STDStart();
    int ACSWeitR;
    int ACSMittelR;
    int ACSNaheR;
    int ACSWeitL;
    int ACSMittelL;
    int ACSNaheL;
    while (true)
    {
        setACSPwrHigh();
        task_ACS();
        ACSWeitR = obstacle_right;
        ACSWeitL = obstacle_left;
        
        setACSPwrMed();
        task_ACS();
        ACSMittelR = obstacle_right;
        ACSMittelL = obstacle_left;
        
        setACSPwrLow();
        task_ACS();
        ACSNaheR = obstacle_right;
        ACSNaheL = obstacle_left;
        
        if (ACSWeitR || ACSWeitL)
        {
            if (ACSMittelR || ACSMittelL)
            {
                if (ACSNaheR || ACSNaheL)
                {
                    writeString ("Nahe");
                }
                
                else
                    writeString ("Mittel");
            }
            else writeString("Weit");
        }
        else writeString ("Garnicht");
        
        warte();
    }
    return (0);
}
Deshalb glaube ich dass man die Funktion setzACSPwr...() nicht zu oft aufrufen sollte, warum auch immer.

Gruß Jan Lukas