Problem with declaring void

Wont let me declare fade!

const int ledPinR = 9;
const int ledPinG= 11;
const int ledPinB = 10;

const int buttonPin1 = 3; 

int buttonState1 = 0;

byte redPwr = 0;
byte greenPwr = 0;
byte bluePwr = 0;

void setup()
{
  pinMode(ledPinR, OUTPUT);
  pinMode(ledPinG, OUTPUT);
  pinMode(ledPinB, OUTPUT);


  pinMode(buttonPin1, INPUT);



}
void loop()
{
  buttonState1 = digitalRead(buttonPin1);
  if (buttonState1 == LOW){
    delay(200);
    redPwr = 246;
    greenPwr = 235;
    analogWrite(ledPinR, redPwr);
    bluePwr = 0;
    analogWrite(ledPinG, greenPwr);
    analogWrite(ledPinB, bluePwr);
    fade(); // this is what is giving me problems! ********
    delay(500);
  
  }
    else {
    analogWrite(ledPinR, LOW);
    analogWrite(ledPinG, LOW);
    analogWrite(ledPinB, LOW);
  }
}
void fade(int redFrom=246, int grnFrom=235, int bluFrom=0, int delayTime=25) // this is the void which i am trying to set up ! 
{
   for (int r=redFrom, g=grnFrom, b=bluFrom; r>=0; r-=5, g-=5, b-=5)
   {
      digitalWrite(ledPinR, r);
        digitalWrite(ledPinG, g);
        digitalWrite(ledPinB, b);
        delay(delayTime);
   }
}

Where is the problem?!

You need to call the full name of the subroutine.

You can't just put fade() and expect it to know where to go. you need to full line there.

...
analogWrite(ledPinB, bluePwr);
    fade([glow]redFrom, grnFrom, bluFrom, delayTime[/glow]); // this is what is giving me problems! ********
    delay(500);...

Not sure if you need the full thing with INT and values or just the names.

Also you should have kept this going in your other thread. no need to start a new thread on the same project.