Слияние кода завершено, страница обновится автоматически
#ifndef BLINEKR_TICKER_H
#define BLINEKR_TICKER_H
#if defined(ARDUINO)
#if ARDUINO >= 100
#include <Arduino.h>
#else
#include <WProgram.h>
#endif
#endif
#include "../Blinker/BlinkerDebug.h"
extern "C" {
typedef void (*blinker_callback_t)(void);
}
class BlinkerTicker
{
public :
BlinkerTicker() {}
// : day_time(0)
// , os_time(0)
// {}
// void freshTime(uint32_t time_s) { day_time = time_s; os_time = millis(); }
void attach(uint32_t seconds, blinker_callback_t func)
{
aim_time = seconds;
tickerFunc = func;
isRun = true;
}
void detach() { isRun = false; }
void run()
{
if (millis() - os_time >= 1000 && millis() - os_time < 2000)
{
os_time += 1000;
tick_time ++;
}
else if (millis() - os_time >= 2000)
{
tick_time += (millis() - os_time) / 1000;
os_time = millis();
}
if (isRun)
{
if (tick_time - aim_time >= 0 && tick_time - aim_time < 60)
{
BLINKER_LOG_ALL(BLINKER_F("ticker trigged"));
isRun = false;
if (tickerFunc) tickerFunc();
}
}
}
protected :
uint32_t tick_time;
uint32_t os_time;
uint32_t aim_time;
bool isRun = false;
blinker_callback_t tickerFunc = NULL;
};
#endif
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )