Часы-заставка на esp32
- Войдите на сайт для отправки комментариев
Чт, 25/11/2021 - 14:54
Хочу чтобы в период бездействия часы выводились на дисплей. (будут еще кнопки как прерывание)
Скажите где я олень, ибо while не работает
#include <GyverOLED.h> #include <WiFi.h> #include "time.h" GyverOLED<SSD1306_128x64, OLED_BUFFER> oled; const char* ssid = "*********"; const char* password = "*******"; const char* ntpServer = "pool.ntp.org"; const long gmtOffset_sec = 7200; const int daylightOffset_sec = 3600; int clock_delay; void setup() { Serial.begin(115200); oled.init(); // инициализация oled.clear(); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(" CONNECTED"); //init and get the time configTime(gmtOffset_sec, daylightOffset_sec, ntpServer); } void loop() { oled.clear(); oled.setCursor(1, 1); oled.setScale(3); oled.print("hello"); oled.update(); while (millis() - clock_delay > 5000) { struct tm timeinfo; if (getLocalTime(&timeinfo)) { char time_str[16]; char date_str[11]; strftime(time_str, 16, "%H:%M:%S", &timeinfo); strftime(date_str, 11, "%m.%d.%Y", &timeinfo); oled.clear(); oled.setCursor(15, 1); oled.setScale(2); oled.print(time_str); oled.setCursor(5, 4); oled.setScale(2); oled.print(date_str); oled.update(); } clock_delay = millis(); } }
while не работает
работает, но очень недолго.
Выводит время, показывает его крохотную долю секунды, доходит до строки 51 и выходит из цикла
Верно. И как правильно будет сделать?
51 строку надо перенести и поставить перед while , а в 35ой поменять > на <....
всем спасибо, разобрался