This commit is contained in:
Alex
2019-10-25 15:16:28 +03:00
parent 7e5a8a4770
commit 6ef6e10821
3 changed files with 11 additions and 5 deletions

View File

@@ -74,7 +74,7 @@ byte IP_AP[] = {192, 168, 4, 66}; // статический IP точки до
#define FASTLED_ESP8266_RAW_PIN_ORDER
#define NTP_INTERVAL 60 * 1000 // обновление (1 минута)
#include "timerMinim.h"
#include "timer2Minim.h"
#include <FastLED.h>
#include <ESP8266WiFi.h>
#include <DNSServer.h>

View File

@@ -18,7 +18,7 @@ void timeTick() {
}
}
if (minuteCounter > 5) { // синхронизация каждые 5 минут
if (minuteCounter > 30 && WiFi.status() == WL_CONNECTED) { // синхронизация каждые 30 минут
minuteCounter = 0;
if (timeClient.update()) {
hrs = timeClient.getHours();

View File

@@ -1,4 +1,6 @@
// мини-класс таймера, версия 1.0
// мини-класс таймера, версия 2.0
// использован улучшенный алгоритм таймера на millis
// алгоритм чуть медленнее, но обеспечивает кратные интервалы и защиту от пропусков и переполнений
class timerMinim
{
@@ -23,8 +25,12 @@ void timerMinim::setInterval(uint32_t interval) {
}
boolean timerMinim::isReady() {
if ((long)millis() - _timer >= _interval) {
_timer = millis();
uint32_t thisMls = millis();
if (thisMls - _timer >= _interval) {
do {
_timer += _interval;
if (_timer < _interval) break; // переполнение uint32_t
} while (_timer < thisMls - _interval); // защита от пропуска шага
return true;
} else {
return false;