(deleted)
main.zip (3.04 KB)
(deleted)
main.zip (3.04 KB)
if ((Stunden_Aktuell == 5) && (Minuten_Aktuell == 00) && (Sekunden_Aktuell == 00))
status = 2; // Rollos rauf
if ((Stunden_Aktuell > 5) || (Stunden_Aktuell < 3))
{
ESP.deepSleep(ESP.deepSleepMax());
delay(100);
}
Du lässt ihm ein Zeitfenster von 2 Stunden in dem er nicht schlafen gehen soll und sagst zudem das er genau um 05:00 Uhr die Rollos bedienen soll. Alles schön und gut, aber er trifft von Zeit zu Zeit eventuell mal durch Zufall das Fenster, da Du ihn mit ESP.deepSleep(ESP.deepSleepMax()); für 3 Stunden und 46 Minuten zum Schlafen schickst... Das ist fast wie Lotto spielen das es mal klappt.
Was passiert wenn Du die Zeit kürzer machst?
Gruß, Jürgen
main.ino (685 Bytes)
OTA.ino (132 Bytes)
Rollo.ino (470 Bytes)
Schrittmotor.ino (2.36 KB)
WiFi.ino (691 Bytes)
Zeit.ino (1.41 KB)
(deleted)
Dachte ich auch. Scheinbar war das mal so in der alten SDK begrenzt. Jetzt scheinbar 3 Stunden 46 Minuten.
Ah, jetzt habe ich was:
Remember my initial “…32-bit unsigned integer is 4294967295 or 0xffffffff…” statement? It referred to the data type of the system_deep_sleep parameter (that μs thing).
Well, it used to be a 32-bit unsigned integer; a uint32_t in Arduino lingo. Hence, deep sleep could last at most 4294967295μs or ~71min. You simply can’t fit a larger number than that into a uint32_t. If you tried, it would overflow and you’d possibly get a much lower value.
With SDK 2.1 Espressif changed the data type of that parameter to a 64-bit unsigned integer; a uint64_t. So, in theory you could send the MCU to deep sleep for some 5’124’095’576 hours ((2^64-1)/(3600 * 10^6) i.e. (2^64-1)/μs-per-hour). As this is neither useful nor practical they also documented the realistic limit which Arduino calculates in ESP.deepSleepMax().
Note that in order to test this you need ESP8266 Arduino core 2.4.1 or higher!
Von der Seite Max deep sleep for ESP8266, a deep-dive analysis • ThingPulse
Gruß, Jürgen
Hi
Wollte schon sagen - von 32 auf 64 Bit müsste das Endergebnis 'etwas länger' sein, als 3,batsch Stunden anstelle von 71 Minuten.
Nettes Beispiel dazu sind die millis() - wenn man statt Millisekunden schnöde Sekunden speichert, reicht Das auch locker für ein Leben (oder Zwei).
Statt 49,x Tage bekommt man 134 Jahre - wenn Das Mal nicht reicht für einen Sketch.
MfG
(deleted)