#ifndef GyverTimer_h #define GyverTimer_h #include /* Текущая версия: 1.4 от 22.11.2018 GTimer - компактная альтернатива конструкции таймера с millis() / micros() - Вся работа с таймером заменяется одной функцией - Миллисекундный и микросекундный таймер - Автоматический и ручной режим работы */ class GTimer_ms { public: GTimer_ms(); // объявление таймера (МИЛЛИСЕКУНДНЫЙ) GTimer_ms(uint32_t interval); // объявление таймера с указанием интервала void setInterval(uint32_t interval); // установка интервала работы таймера void setMode(boolean mode); // установка типа работы: AUTO или MANUAL (MANUAL нужно вручную сбрасывать reset) boolean isReady(); // возвращает true, когда пришло время. Сбрасывается в false сам (AUTO) или вручную (MANUAL) void reset(); // ручной сброс таймера на установленный интервал private: uint32_t _timer = 0; uint32_t _interval = 0; boolean _mode = true; }; class GTimer_us { public: GTimer_us(); // объявление таймера (МИКРОСЕКУНДНЫЙ) GTimer_us(uint32_t interval); // объявление таймера с указанием интервала void setInterval(uint32_t interval); // установка интервала работы таймера void setMode(boolean mode); // установка типа работы: AUTO или MANUAL (MANUAL нужно вручную сбрасывать reset) boolean isReady(); // возвращает true, когда пришло время. Сбрасывается в false сам (AUTO) или вручную (MANUAL) void reset(); // ручной сброс таймера на установленный интервал private: uint32_t _timer = 0; uint32_t _interval = 0; boolean _mode = true; }; #define MANUAL 0 #define AUTO 1 #endif