savecolor;
displaycolors;
potfun;
Do you see any other functions in your program called like this ?
No
pinMode(fadeon, INPUT);
digitalRead(fadeon);
analogWrite(red, rpotval);
Notice that all the function calls have brackets after the function names. This allows you to pass parameters to a function so that it can use them to make decisions such as which pin to set the mode for and what value the mode should be set to. The brackets are mandatory and if you don't want to pass any parameters to a function you must still use the brackets like this
savecolor();
Once you have managed to call savecolor() you will find that it does not work because of other things being wrong (see below) but at least get your code working to call the functions. You can prove that the functions are being called by putting Serial.print statements in then like this
int savecolor()
{
Serial.println("In savecolor");
fadeChooseState = digitalRead(fadeon);
if (fadeChooseState != lastFadeChooseState)
If you don't see the messages then the function has not been called.
You have code in savecolor()
return place[fadeChooseCounter][0] = analogRead(rpot);
return place[fadeChooseCounter][1] = analogRead(gpot);
return place[fadeChooseCounter][2] = analogRead(bpot);
The function will end and go back to where it was called from when it finds the
first return command. In general you cannot return more than one value from a function but do you need to ? The place array is defined as a global variable and is accessible by all parts of your program.