In old-style C you would use a pointer to pass-by-reference instead of pass-by-value:
void loop() {
const unsigned long interval = 500;
static unsigned long timePrev = 0 ;
unsigned long timeNow = millis();
if (timeElapse(timeNow, &timePrev, interval){
// Do Stuff
}
}
boolean timeElapse( unsigned long timeNow, unsigned long *timePrevious, unsigned long timeDelay) {
if ( timeNow - *timePrevious >= timeDelay ) {
*timePrevious = timeNow;
return 1;
}
return 0;
}
In modern C and C++ you can use a 'reference':
void loop() {
const unsigned long interval = 500;
static unsigned long timePrev = 0 ;
unsigned long timeNow = millis();
if (timeElapse(timeNow, timePrev, interval) {
// Do Stuff
}
}
boolean timeElapse( unsigned long timeNow, unsigned long &timePrevious, unsigned long timeDelay) {
if ( timeNow - timePrevious >= timeDelay ) {
timePrevious = timeNow;
return 1;
}
return 0;
}