Zeit seit Power on?

  • Der ESP8266 hat eine Uhr, die zum Beispiel zum Aufwachen aus dem Deep Sleep gebraucht wird. Ist es möglich diese Uhr direkt anzufragen? Wann ist der Startzeitpunkt dieser vermutlich relativen Uhr? Power on?

    Marcus

    Einmal editiert, zuletzt von MarcusFE (1. August 2017 um 22:28)

  • Wenn du mit dem ESP in einem WLAN bist, frag doch einen Timeserver ab...
    Die "Uhr" für das Aufwecken aus dem Tiefschlaf ist nur ein Timer. Der ESP hat mehrere (Soft) Timer. Du kannst dir natürlich einen Interrupt basteln, der regelmäßig ausgelöst wird, und die Zeit hochzählen. Aber die Genauigkeit dieser Timer ist eher mäßig. Du könntest die so hochgerechnete Zeit regelmäßig mit einem Timeserver abgleichen und nachführen.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Da müsstest du schauen, ob du den Timer nach dem Aufwachen auslesen kannst und ob er nicht in dem Moment schon zurückgesetzt ist.
    Wird dein ESP durch ein externes Signal aufgeweckt oder setzt du den Timer vorher? Im zweiten Fall weißt du ja, wie lange es dauert. Den Timerstand musst du regelmäßig in einen nichtflüchtigen Speicher schreiben. Wenn der ESP da was hat, gut, wenn nicht, musst du noch was extern anschließen. alles viel Umstand. Speichere die Einschaltzeit doch im WLAN, dann weißt du jederzeit, wann der Start war...

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Das Aufwachen geschieht durch Reset. Entweder über Hardware oder den RTC-Timer des ESP (auch Reset, GPIO16 - Reset). Nur eine Funktion, um lesend auf den RTC-Timer zuzugreifen, finde ich nicht. Als nichtflüchtiger Deep Sleep fester Speicher dient das RTC User Memory, 512 Bytes.

    Einmal editiert, zuletzt von MarcusFE (2. August 2017 um 10:06)

  • Meines Wissens hat ein einfacher ESP8266 kein RTC, nur einen Timer für den Wakeup.
    Wenn du ein RTC User Memory hast, dann hast du wohl ein Modul mit eingebauter RTC (also ein DS3131 oder ähnliches auf der Platine) - dann wäre es das einfachste, eben diese RTC zu lesen!!! Dann verstehe ich dein Problem nicht, denn die RTC sollte auch im deep sleep weiter laufen - sonst wäre sie ja sinnlos.
    Vielleicht kannst du uns etwas genauer sagen, welches Modul du benutzt und was du damit eigentlich machen willst...

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Es gibt ein Modul rtctime.c, das eine Art Realtime Clock realisiert. Das könntest du mal ausprobieren. Hier gibts auch noch was dazu.
    Automatisch zusammengefügt:

    Zitat von "MarcusFE" pid='293656' dateline='1501667792'

    Ja, das Ding heißt aber nur RTC und ist keine. Im deep sleep verliert diese RTC die Zeit, wenn ich richtig informiert bin. Das Modul, das ich oben verlinkt habe, umgeht das, indem es den deep sleep Timer auswertet und die Zeit dann hochrechnet. Wie genau das ist, ist aber unklar. Alternativ eine externe RTC (DS3231, DS1307 oder ähnliches).

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

    Einmal editiert, zuletzt von Gnom (2. August 2017 um 12:03)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!