Hallo Dirk,

vielen Dank für den Tip, so in der Art müsste es eigentlich funktionieren. Aber irgendwie krieg ich es nicht hin. Hab mich erstmal auf 2 LED´s konzentriert (Port 7 und 5).
Code:
void task_LDRinfo(void)     //LDR für Suchscheinwerfer auswerten
{

		writeString_P("LDR_L: ");
		writeIntegerLength(adcLSL, DEC, 4);
		writeString_P(" ; LDR_R: ");
		writeIntegerLength(adcLSR, DEC, 4);
		writeString_P(" ||");
		if(adcLSL <400) 
		PORTC |= IO_PC3;
		if(adcLSL >450)
		PORTC &= ~IO_PC3;

}

void eigenefunktion(void)
{

PORTC &= ~IO_PC7; //IO´s erstmal auf LOW schalten
PORTC &= ~IO_PC6;
PORTC &= ~IO_PC5;
PORTC &= ~IO_PC4;

startStopwatch3();                 //Stopwatch Nr. 1 starten

if (getStopwatch3() > 100)   //Stopwatch 1 auswerten
PORTC |= IO_PC7;             /Wenn Stopwatch über 100-> Ports High
PORTC |= IO_PC5;
setStopwatch1(0);             //Stopuhr zurückstellen auf 0

if (getStopwatch3() > 100)  //Stopwatch 1 auswerten
PORTC &= ~IO_PC7;        // Wenn Stopwatch über 100--> Ports LOW
PORTC &= ~IO_PC5;   
setStopwatch3(0);           //Stopuhr wieder zurück


int main(void)                          //Hauptprogramm
{
	initRP6Control();  
	initLCD();
	
DDRC |= IO_PC7;                    //erstmal Ports festlegen
DDRC |= IO_PC6;
DDRC |= IO_PC5;
DDRC |= IO_PC4;
DDRC |= IO_PC3;

PORTC &= ~IO_PC3;      /*Den Port für den Suchscheinwerfer auf LOW /*

while(true)         //Endlos-Schleife starten
	{ 
		task_LCDHeartbeat();
		task_checkINT0();
	    task_I2CTWI();
		behaviourController();
		eigenefunktion();    /*Hier sollten nun eigentlich die Ports nach je 100ms high/Low-Schalten /*

		task_LDRinfo(); /*Abfrage für Suchscheinwerfer

	
		

	}
	return 0;
}
Was ich nicht ganz verstehe: Der Port 3 für den Suchscheinwerfer ist am Anfang immer aktiv ebenso die für die LED´s. Port 3 schalte ich im Hauptprogramm ja aktiv ab (PORTC &= ~IO_PC3; ) die 4 anderen nicht. Diese sind aber nach einmaligen aufleuchten ebenfalls auf Low???