Schleifen für Sensorabfrage

Hallo,

ja sie wird bei Aufruf solange ausgeführt, bis die verstrichene Zeit seit Aufruf größer der Intervallzeit ist.
Das ist irreführend und bestimmt nicht so gedacht. Entnehme ich dem Variablennamen.
Wenn es wirklich nach jeden Intervall einmalig aufgerufen bzw. abgearbeitet werden soll, dann eher so.
Das letzte if und bool kann man einsparen.

void GeoLoc checkGPS ()
{   
 
  static unsigned long last_ms = 0;
  const unsigned int GPS_UPDATE_INTERVAL = 5000;
  
  if ( (millis() - last_ms < GPS_UPDATE_INTERVAL)  return;  // Zeit noch nicht erreicht, Abbruch
  
  last_ms += GPS_UPDATE_INTERVAL;
  
  Serial.println("checkGPS()");
  
  if (feedgps()) {
      return gpsdump(gps);
  }
}