diff --git a/MillisTimer.cpp b/MillisTimer.cpp index 141f16d..3f2bdb4 100644 --- a/MillisTimer.cpp +++ b/MillisTimer.cpp @@ -38,6 +38,9 @@ void MillisTimer::run() expired(); } +void MillisTimer::operator() (){ + expired(); +} bool MillisTimer::expired() { diff --git a/MillisTimer.h b/MillisTimer.h index 026992e..6c5710f 100644 --- a/MillisTimer.h +++ b/MillisTimer.h @@ -48,6 +48,7 @@ class MillisTimer void reset(); bool expired(); void run(); + void operator() (); uint8_t ID; diff --git a/examples/MillisTimer_Example/MillisTimer_Example.pde b/examples/MillisTimer_Example/MillisTimer_Example.pde index 569c79d..4fe654b 100644 --- a/examples/MillisTimer_Example/MillisTimer_Example.pde +++ b/examples/MillisTimer_Example/MillisTimer_Example.pde @@ -25,6 +25,14 @@ void myTimerFunction(MillisTimer &mt) } + // declaration of timer using lambda expression (std=c++11) +MillisTimer timer2(500, [] (MillisTimer& tim) { + static bool ledState = false; + digitalWrite(LED_BUILTIN, ledState); // built in led 500ms blink + ledState ^= 1; +}); + + void setup() { Serial.begin(9600); @@ -33,12 +41,17 @@ void setup() timer1.expiredHandler(myTimerFunction); timer1.setRepeats(5); timer1.start(); + + + pinMode(LED_BUILTIN, OUTPUT); + timer2.start(); } void loop() { timer1.run(); + timer2(); if (!timer1.isRunning()) {