mirror of
https://github.com/AlexGyver/GyverLamp.git
synced 2025-08-09 09:19:12 +03:00
upd
This commit is contained in:
@@ -74,7 +74,7 @@ byte IP_AP[] = {192, 168, 4, 66}; // статический IP точки до
|
|||||||
#define FASTLED_ESP8266_RAW_PIN_ORDER
|
#define FASTLED_ESP8266_RAW_PIN_ORDER
|
||||||
#define NTP_INTERVAL 60 * 1000 // обновление (1 минута)
|
#define NTP_INTERVAL 60 * 1000 // обновление (1 минута)
|
||||||
|
|
||||||
#include "timerMinim.h"
|
#include "timer2Minim.h"
|
||||||
#include <FastLED.h>
|
#include <FastLED.h>
|
||||||
#include <ESP8266WiFi.h>
|
#include <ESP8266WiFi.h>
|
||||||
#include <DNSServer.h>
|
#include <DNSServer.h>
|
||||||
|
@@ -18,7 +18,7 @@ void timeTick() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (minuteCounter > 5) { // синхронизация каждые 5 минут
|
if (minuteCounter > 30 && WiFi.status() == WL_CONNECTED) { // синхронизация каждые 30 минут
|
||||||
minuteCounter = 0;
|
minuteCounter = 0;
|
||||||
if (timeClient.update()) {
|
if (timeClient.update()) {
|
||||||
hrs = timeClient.getHours();
|
hrs = timeClient.getHours();
|
||||||
|
@@ -1,4 +1,6 @@
|
|||||||
// мини-класс таймера, версия 1.0
|
// мини-класс таймера, версия 2.0
|
||||||
|
// использован улучшенный алгоритм таймера на millis
|
||||||
|
// алгоритм чуть медленнее, но обеспечивает кратные интервалы и защиту от пропусков и переполнений
|
||||||
|
|
||||||
class timerMinim
|
class timerMinim
|
||||||
{
|
{
|
||||||
@@ -23,8 +25,12 @@ void timerMinim::setInterval(uint32_t interval) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
boolean timerMinim::isReady() {
|
boolean timerMinim::isReady() {
|
||||||
if ((long)millis() - _timer >= _interval) {
|
uint32_t thisMls = millis();
|
||||||
_timer = millis();
|
if (thisMls - _timer >= _interval) {
|
||||||
|
do {
|
||||||
|
_timer += _interval;
|
||||||
|
if (_timer < _interval) break; // переполнение uint32_t
|
||||||
|
} while (_timer < thisMls - _interval); // защита от пропуска шага
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
Reference in New Issue
Block a user