#include #include "FakeMsTimer.h" namespace FakeMsTimer { uint32_t _milliseconds = 0; uint32_t _counter = 0; bool _started = false; void (*func)() = nullptr; uint32_t _lastMillis; void set(uint32_t milliseconds, void (*f)()) { _milliseconds = milliseconds; func = f; } void start() { _counter = 0; _started = true; } void stop() { _counter = 0; _started = false; } void fakeTick() { if (!_started) { return; } const uint32_t now = millis(); if (_lastMillis == 0) { _lastMillis = now; } const uint32_t delta = millis() - _lastMillis; _lastMillis = now; _counter += delta; if (_counter >= _milliseconds) { if (func) { func(); } _counter = 0; } } }