From a0ecddc38108b60c88ebd8a9e654b7dc32dc5805 Mon Sep 17 00:00:00 2001 From: Norbert Bielak Date: Sat, 15 Aug 2020 20:46:29 +0200 Subject: [PATCH 1/2] Added operator() - equivalent of run() method --- MillisTimer.cpp | 3 +++ MillisTimer.h | 1 + 2 files changed, 4 insertions(+) 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; From 1cdc67f7fa78193e405e6aade4f01c794eeb2adb Mon Sep 17 00:00:00 2001 From: Norbert Bielak Date: Sat, 15 Aug 2020 20:47:12 +0200 Subject: [PATCH 2/2] added example with lambda expression --- .../MillisTimer_Example/MillisTimer_Example.pde | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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()) {