schwer zu beantworten bei der bescheidenen arduino lib doku ... sehr mangelhaft imho
aber aus dem GitHub Fork herausgelesen
Code:
int SimpleTimer::setTimer(long d, timer_callback f, int n) {
int freeTimer;
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;
}
würde ich sagen, er teilt dir mit WELCHEN Timer er benutzt hat und mit -1 sagt er dass er keinen freien Timer gefunden hat
soll dir sagen, dass du dich mit der lib nochmal befassen musst um heraus zu bekommen wie man einen belegten timer auch wieder freigibt oder wiederverwendet ... ich hab damit leider keine ERfahrug aber andere können dir sicher helfen 
Dein COde macht allerdings auch irgendwie keinen richtigen Sinn, egal ob ein Timer "Überläuft" oder nciht, in deiner loop wird imer weider ein neuer Intervall gestartet und das verbrennt dir natürlich deine Reserven, was bezweckst du mit dem Code?!
Lesezeichen