Библиотека GyverTimer

Библиотека GyverTimer 3.0

  • Все темы в "разделе помощи" были преобразованы в ВОПРОСЫ. У вопроса можно выбрать ответ юзера в качестве лучшего ответа, и статус темы автоматически сменится на РЕШЕНО. Если ваш вопрос был решён - просьба пометить ответ, тем самым показав остальным, что он не актуален!
Screenshot_2.jpg

Компактная альтернатива конструкции таймера с millis() / micros(), обеспечивающая удобную мультизадачность на Arduino
  • Вся работа с таймером заменяется одной функцией
  • Миллисекундный и микросекундный таймер
  • Автоматический и ручной режим работы
В чём вся прелесть:
Screenshot_2 (2).jpg


Основные функции и методы
C++:
    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();                            // ручной сброс таймера на установленный интервал
    void stop();                            // остановить таймер
    void start();                            // продолжить
Пример мультизадачности по таймерам
C++:
#include "GyverTimer.h"

// создать таймер, в скобках период в миллисекундах
GTimer_ms myTimer1(500);
GTimer_ms myTimer2(600);
GTimer_ms myTimer3(1000);

void setup() {
  Serial.begin(9600);
}

void loop() {
  if (myTimer1.isReady())
    Serial.println("действие 1!");

  if (myTimer2.isReady())
    Serial.println("действие 2!");

  if (myTimer3.isReady())
    Serial.println("действие 3!");
}
Пример "отложенного запуска"
C++:
/*
    Пример работы в ручном режиме (отложенный пуск)
*/

#include "GyverTimer.h"
GTimer_ms myTimer;                // создать таймер

void setup() {
  Serial.begin(9600);
  myTimer.setInterval(5000);   // настроить интервал 5 сек
  myTimer.setMode(MANUAL);     // ручной режим
  Serial.println("Start");
  Serial.println("Wait 5 sec");
}

void loop() {
  if (myTimer.isReady()) Serial.println("Timer!");
}
Пример микросекундного таймера
C++:
// пример с таймером на micros

#include "GyverTimer.h"
GTimer_us myTimer(1500);    // создать таймер 1500 мкс = 1,5 миллисекунды

void setup() {
  Serial.begin(9600);
}

void loop() {
  if (myTimer.isReady()) Serial.println("Timer!");
}
Автор
AlexGyver
Скачивания
1,336
Просмотры
1,565
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя AlexGyver

Последние обновления

  1. 3.0

    - Версия 3.0 - Логика работы разделена на интервал и таймаут - Добавлен общий класс GTimer...
  2. Добавлены методы

    stop(); // остановить таймер start(); // продолжить
  3. Исправлена совместимость с другими библиотеками

    Исправлена совместимость с другими библиотеками из GyverLibs