Ich finde den Fehler nicht...*verzweifel*

Hoffe ihr könnt mir helfen: Im Loop rufe ich in dieser If-Clausel die void "getMondphase()" auf:

else if (minute == noonminutefadeout[loop] && hour == noonhourfadeout[loop] && second == 0 && loop == 4) {
                      currmillis[loop]=millis();
                      i[loop]=255;
                      a[loop]=-1;
                      check[loop]=2;
                      getMondphase();
                      zufall[loop]=mondschein;
                      intervall[loop]=intervallnoon[loop];
            }

Das passiert genau ein mal pro Tag. in der FUnktion Mondphase soll sich dann täglich die Helligkeit der LEDs erhöhen bzw verringern. Sprich 14 Tage hoch und dann 14 Tage runter. Die Funktion sieht folgend aus:

void getMondphase() {
   phase=phase+b;
   switch(phase) {
     case 0:
       mondschein=0;
       b=1;
       break;
     case 14:
       mondschein=255;
       b=-1;
       break;
     default:    
       mondschein=(phase*18);
   }
 }

Die Phase soll sich immer um b erhöhen oder verringern. Entsprechend verändert sich der Wert Mondschein, der hier in die If-Clausel zurückgegeben wird. Leider ist da irgendwo ein Fehler. Für Phase erhalte ich immer andere Werte als sie sein sollten, sprich es klappt nicht, dass ich 0-14 und wieder zurück erhalte. Any idea?

Gruß

"Scotty, beam mir mal die Kristallkugel hoch." ;) ;)

Bitte schick uns mal den ganzen Code damit wir ihn testen können.

Grüße Uwe

Fehler gefunden: die schleife wird mehrmals durchlaufen, da ja ne sekunde der niedrigste prüfwert ist und inner sekunde schafft das proggi das schon. hab in die void getMondphase einfach mal ne sekunde delay eingefügt und schon passts. Gruß