Hi,
I just noticed the following:
class MilliTimer {
word next;
[...]
void MilliTimer::set(word ms) {
[...]
next = millis() + ms - 1;
wiring.h: typedef unsigned int word;
-> millis() returns a (unsigned) 32-bit word and MilliTimer assigns it to a (signed) 16-bit word.
This will probably fail on a 15-bit overflow.
I guess a quickfix is to use an unsigned long in MilliTimer.
Cheers,
-Marius
