vancontrolsystems/lib/Timer/Timer.cpp

38 lines
568 B
C++

#ifndef Timer_cpp
#define Timer_cpp
#include <Arduino.h>
#include <functional>
class Timer{
private:
unsigned long _interval, _lastTick;
std::function<void()> _callback;
bool _running;
public:
Timer(std::function<void()> callback){
_callback = callback;
_running = false;
}
void reset(unsigned long interval){
_interval = interval;
_lastTick = millis();
_running = true;
}
void loop(){
if (!_running)
return;
unsigned long tick = millis();
if (tick - _lastTick >= _interval){
_callback();
_running = false;
}
}
};
#endif