38 lines
568 B
C++
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
|