#ifndef Timer_cpp #define Timer_cpp #include #include class Timer{ private: unsigned long _interval, _lastTick; std::function _callback; bool _running; public: Timer(std::function 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