надеюсь вы понимаете, что причина не в миллис, а в плохом коде? Покажите код, не стесняйтесь. Только целиком.стоило перейти на миллис, чтобы все функции работали независимо, у меня не только часы, то начались мерцания)
надеюсь вы понимаете, что причина не в миллис, а в плохом коде? Покажите код, не стесняйтесь. Только целиком.стоило перейти на миллис, чтобы все функции работали независимо, у меня не только часы, то начались мерцания)
int zone = t_z[0] - '0';
Serial.println(t_z);
Serial.println(zone);
3
-48
int zone = t_z[0];
3
0




int zone = t_z[0] * 3600;
Выполните
int zone = t_z[0]-'0';
Serial.println((uint8_t)t_z[0]);
Serial.println(zone);
51
-48
Тут печать идет
Serial.println(t_z);
int zone = t_z[0]-'0';
Serial.println(t_z[0]);
Serial.println(zone);
3
-48
попробую на String перейти...tz[0] Это символ 3 (код 51)
Короче получается байда с путаницей кодов и символов. Приводите все к одному виду, не надеясь , что прокатит.
String zone = (String) t_z;
int timezone = zone.toInt();
Serial.println(t_z);
Serial.println(zone);
Serial.println(timezone);
3
0
нельзя так делать вЧтение:
wifi_cfg.tz = doc["tz"];
String timezone;
strcpy(timezone, doc["j_zone"]);
cannot convert 'String' to 'char*' for argument '1' to 'char* strcpy(char*, const char*)'
zone будет равен 208)C++:uint8_t zone = (uint8_t)t_z[0] - '0';
char ssid[32] = "";
char pass[32] = "";
char t_z[3] = "";
uint8_t zone = (uint8_t)t_z[0] - '0';
NTPClient ntpClient(udp, ntp_srv, (zone * 3600), Period);
bool loadConfig() {
...
strcpy(ssid, doc["j_ssid"]);
strcpy(pass, doc["j_pass"]);
strcpy(t_z, doc["j_zone"]);
...
}
void setup() {
Serial.begin(115200);
LittleFS.begin();
ntpClient.begin();
wifi_connected();
portal.attachBuild(build_index);
portal.start();
TempHome();
TempStreet();
Press();
Serial.println(t_z);
Serial.println(zone);
//Serial.println(timezone);
}
strcpy(t_z, doc["j_zone"]);
zone = (uint8_t)t_z[0] - '0';
Serial.println(t_z);
Serial.println(zone);
NTPClient ntpClient(udp, ntp_srv, (zone * 3600), Period);