int SimpleTimer::setupTimer(unsigned long d, void* f, void* p, bool h, unsigned n) { int freeTimer; if (numTimers < 0) { init(); } freeTimer = findFirstFreeSlot(); if (freeTimer < 0) { return -1; } if (f == NULL) { return -1; } timer[freeTimer].delay = d; timer[freeTimer].callback = f; timer[freeTimer].param = p; timer[freeTimer].hasParam = h; timer[freeTimer].maxNumRuns = n; timer[freeTimer].enabled = true; timer[freeTimer].prev_millis = elapsed(); numTimers++; return freeTimer; }
int SimpleTimer::setTimer(long d, timer_callback f, int n) { int freeTimer; if (numTimers < 0) { init(); } freeTimer = findFirstFreeSlot(); if (freeTimer < 0) { return -1; } if (f == NULL) { return -1; } delays[freeTimer] = d; callbacks[freeTimer] = f; maxNumRuns[freeTimer] = n; enabled[freeTimer] = true; prev_millis[freeTimer] = elapsed(); numTimers++; return freeTimer; }