LED ausdimmen, keine Schleife

Hallo, ich hab ne LED die aus war hoch gedimmt, sie soll dann einfach weiterleuchten.
Funktioniert.
Mein Sketch dazu:

const int LED         = 3;                                               // DPin 3 (PWM)           
int Taster            = 4;                                               // Taster an Pin 4
boolean durchlaufen = false;                                             // Programm derzeit noch nicht durchlaufen

void setup(){
  pinMode(LED,    OUTPUT);                                               // LED als Ausgang
  pinMode(Taster, INPUT);                                                // Taster als Eingang
  }

void loop(){ 
  if ((digitalRead(Taster) == LOW) && (durchlaufen == false)){           // Wenn Taster betätigt(HIGH) ZUM TESTEN LOW & If Schleife noch nicht durchlaufen
  durchlaufen = true;                                                    // Jetzt If Schleife als durchlaufen markieren
   hochdimmen();                                                         // Programm hochdimmen starten und durchlaufen
 }
}

void hochdimmen ()
{
  for  (int helligkeit = 0; helligkeit < 255; helligkeit++){              // hochdimmen
      durchlaufen=true;                                                   // hochdimmen durchlaufen
      analogWrite(LED, helligkeit);                                       // hochdimmen (fortlaufend den Wert ändern)
      delay(25);                                                          // hochdimmen (Schritte)
      }  
}

Jetzt möchte ich eine LED anschalten und dann langsam ausdimmen, also umgekehrt wie oben.
Müsste ich dann nicht nur die for Bedingung ändern?

const int LED         = 3;                                               // DPin 3 (PWM)           
int Taster            = 4;                                               // Taster an Pin 4
boolean durchlaufen = false;                                             // Programm derzeit noch nicht durchlaufen

void setup(){
  pinMode(LED,    OUTPUT);                                               // LED als Ausgang
  pinMode(Taster, INPUT);                                                // Taster als Eingang
  }

void loop(){ 
  if ((digitalRead(Taster) == LOW) && (durchlaufen == false)){           // Wenn Taster betätigt(HIGH) ZUM TESTEN LOW & If Schleife noch nicht durchlaufen
  durchlaufen = true;                                                    // Jetzt If Schleife als durchlaufen markieren
   abdimmen();                                                           // Programm abdimmen starten und durchlaufen
 }
}

void abdimmen ()
{
  // Original HOCHdimmen  for  (int helligkeit = 0; helligkeit < 255; helligkeit++){              // hochdimmen
  for  (int helligkeit = 255; helligkeit > 254; helligkeit--){              // abdimmen
      durchlaufen=true;                                                   // abdimmen durchlaufen
      analogWrite(LED, helligkeit);                                       // abdimmen (fortlaufend den Wert ändern)
      delay(25);                                                          // abdimmen (Schritte)
      }  
}

Möp .... ein kleines = nach > und statt 254 eine 0, und die Welt sieht anders aus.