Fehlermeldung bei Verwendung von float anstatt int

Hallo,

In meinem Programm soll an einer Stelle der Durchschnitt mehrerer Messwerte ermittelt werden. Das funktioniert soweit auch, allerdings habe ich festgestellt dass ich die Variable average (in der Funktion AverageCalc) als integer und nicht als float definiert habe. Um die Genauigkeit zu erhöhen wollte ich das eigentlich ändern.
Ich erhalte jedoch die folgende Fehlermeldung:

exit status 1
invalid operands of types 'float' and 'float()' to binary 'operator+'

Daher die Fragen warum das als integer funktioniert und als float nicht und ob/wie man das ändern kann

MfG

const int Photometer = A0;
const int LED = 6;
const int Relais = 7;

void setup() {
  analogReference(EXTERNAL);
  Serial.begin(9600);

  pinMode(LED, OUTPUT);
    analogWrite(LED, 255);
  pinMode(Relais, OUTPUT);
}

void loop() {
  float average;
  
  average = AverageCalc(5);
  Serial.println(average);
  SteerRelais(average, 1000);
  /* delay (3000);
  SteerRelais(average, 1);
  delay(3000); */
}

float GetLux() {
  float raw;
  float logLux;
  
  raw = analogRead(Photometer);
  logLux = raw * 5 / 1024;
  return pow(10, logLux);
}

float AverageCalc(int divisor) {
  int i;
  float average = 0; // float geht irgendwie nicht, sollte es aber eigentlich sein

  for (i = 0; i < divisor; i++){
    average = average + GetLux;
    delay (2); // wait for the analog-digital converter to stabilize
  }
  average = average / divisor;
  return average;
}

void SteerRelais(float average, float threshold) {
  if (average > threshold) {
    digitalWrite(Relais, HIGH);
  }
  else {
    digitalWrite(Relais, LOW);
  }
}

Du meinst sicher den Aufruf von GetLux() und nicht die Adresse der Funktion.

average = average + GetLux();

Gruß Tommy