starting button

Bouzy,

The problem is that you calculate the value for "reading" only once before you enter "buttonfunc();". Buttonfunc then loops forever, waiting for reading to go HIGH -- which it never will -- and -- yikes! -- calling itself recursively! This is a crash waiting to happen (quickly!). Here's a better suggestion for buttonfunc():

void buttonfunc()
{
  while (digitalRead(buttonPin) == HIGH)
    ; // do nothing!
  Serial.println("Starting systems...");
}

Mikal