kann es sein dass das erte retun 0 die schleife beendet hat ?
Es hat nicht nur die Schleife beendet sondern die ganze Funktion verlassen.

Vergiss mein edit von oben, ich dachte nur das der Fehler möglicherweise irgendwo anders stecken kann.

P.S.

Eleganter als:
Code:
 while(1)
   {
      if (PollSwitch()>0)
      {
wäre vielleicht sowas:
Code:
while (pollSwitch()) {
BackLED(OFF,OFF); 
...
oder
Code:
while (pollSwitch() > 0) {
BackLED(OFF,OFF); 
...
Gruß Sebastian