@mic:

Ich glaub da hast Du mich nicht so ganz verstanden.

Probier mal das aus und schau Dir die Ausgaben im Terminal an - dann sollte deutlich werden was ich meine:
Code:
   startStopwatch3();

   while(true)
   {
     
		if (getStopwatch3() < 800)
		{
		  setLEDs(63);
		  writeString_P("das hier wird gaaanz oft aufgerufen. Stopwatch: ");
		  writeInteger(getStopwatch3(),DEC);
		  writeChar('\n');
		}
		else if (getStopwatch3() < 800+800)
		{
		  setLEDs(0);
		  writeString_P("Noch mehr...  Stand der Stopwatch: ");
			writeInteger(getStopwatch3(),DEC);
		  writeChar('\n');
		}
		else if (getStopwatch3() < 800+800+800)
		{
		  setLEDs(63);
		  writeString_P("und noch mehr ... Stopwatch: ");
		  writeInteger(getStopwatch3(),DEC);
		  writeChar('\n');
		}
		else if (getStopwatch3() < 800+800+800+1000)
		{
		  // hier mal zur Abwechslung nix ausgeben
		  setLEDs(0);
		}
		else setStopwatch3(0);
		
		mSleep(10); // ja das ist absichtlich hier drin, damit die
					// Ausgaben nicht noch schneller erfolgen...
   }

Bei den setLEDs Funktionen macht es natürlich keinen Unterschied ob man 1x setLEDs(0) aufruft oder 1000x.
Bei einer Sound Ausgabe aber schon! Die sollte man nur ein einziges mal Aufrufen sonst klappt es nicht richtig.

Mit "case" sieht's nicht wirklich besser aus:
Naja - geht aber auch deutlich einfacher

Code:
startStopwatch1(); // Stopwatch1 starten!
uint16_t count = 0; // 100-Millisekunden Zähler 
while(true)
{
   if(getStopwatch1() > 100) // 100ms = 0.1s
   {                   
       switch(count)
      {
		case 8: // 800ms	
			setLEDs(0); 
		break;
		case 8+8:  // 1600ms
			setLEDs(63); 
		break;
		case 8+8+8: // 2400ms
			setLEDs(0); 
		break;
		case 8+8+8+8: // 3200ms
			setLEDs(63); 
			count = 0;
		break;
      }
      count++; // 100-Millisekunden Zähler erhöhen
      setStopwatch1(0);
   }
}
Das ist übrigens equivalent zu:
Code:
startStopwatch1(); // Stopwatch1 starten!
uint16_t count = 0; // 100-Millisekunden Zähler 
while(true)
{
   if(getStopwatch1() > 100) // 100ms = 0.1s
   {                   
		if(count==8) {
			setLEDs(0); 
		}
		else if (count == 8+8) { 
			setLEDs(63); 
		}
		else if (count == 8+8+8) { 
			setLEDs(0); 
		}
		else if (count == 8+8+8+8) { 
			setLEDs(63); 
			count = 0;
		}
		count++; // 100-Millisekunden Zähler erhöhen
		setStopwatch1(0);
   }
}
wenn man if-else lieber mag.

MfG,
SlyD