Wenn du zB zwei sachen zeitgesteuert machen willst, und neben bei noch was anderes ausgeführt werden soll, dann kannst du das so machen...

Dein Timer führt diese funktion 10 mal pro sekunde aus (zB!):

Code:
void TIMER ( void ){

if( timervar1 ){ timervar1 --; }
if( timervar2 ){ timervar2 --; }
if( timervar3 ){ timervar3 --; }

}
In der Hauptfunktion kannst du dann die Sachen so steuern:

Diese Funktion wird immer Durchlaufen:

if( timervar1 ){ "ES WERDE LICHT" }else{ "ES WERDE DUNKEL" }

Bei irgend ner Bedingung soll 10 Sekunden lang LICHT WERDEN:
also setzt man timervar1 auf 100:

timervar1 = 100;

Solange nun timervar1 UNGLEICH 0 ist, leuchtet die LED.

Und du kannst den Controller bequem was anderes machen lassen....

EDIT1: Richtiges Multitasking gehd glaub ich nicht mal bei handelsüblichen PCs (ausser bei den DUAL CORE PROZESSOREN, da glaub ich geht es...)

EDIT2: timervar1..3 sind globale Variablen!