Forum: Mikrocontroller und Digitale Elektronik ESP Genauigkeit der Zeitmessung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Phillipp (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Guten Abend

Wie sehr kann man sich auf die Genauigkeit der Zeitmessung
(delay oder millis) verlassen?

Gibt es da Spezifikationen?

Es geht darum, mehrere ESP gleichzeitig für 5 Minuten schlafen zu legen.
Nach dem Erwachen sollen diese dann wieder untereinander kommunizieren 
können.

Danke Phillipp

von Fragezeichen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
ESP mal 5 Minuten schlafen legen?

Wofür steht bei dir ESP (in Worten)?

Oder meinst du SPS, oder häääh?

von Phillipp (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gemeint ist der µC ESP8266.
Bitte entschuldige die fehlende Bezeichnung.

von Werner P. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Das Problem dürfte weniger die Schlafzeit sein, sondern WANN die 
schlafen gehen. Dazu müssen die synchron laufen.

Möglichkkeit: Die ESP holen sich die Zeit von einem Zeitserver und gehen 
bei voller Minute schlafen.

von Sascha_ (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Die Zeitbasis vom ESP8266 ist ja genau genug für UART, ergo sollte die 
Ungenauigkeit der internen Uhr im Bereich von 5 Minuten vernachlässigbar 
sein.

Wenn die ihre Uhrzeiten abgleichen und dann schlafen gehen, wachen die 
ziemlich zeitlgleich wieder auf.

von Fragezeichen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Kenne das Ding nicht, aber wenn kein Quarz daran ist,
werden die 5 Minuten unterschiedlich lang sein.

Danach könnte (je nach Kommunikationsprotokoll) eine
Synchronisierung erforderlich sein, wie sie auch beim
Start der 5 ESP nötig war.

(Einfach mal LOGISCH gedacht.)

Bestimmt (?) kommen gleich schlauere Hinweise.

von Dirk K. (dekoepi)


Bewertung
0 lesenswert
nicht lesenswert
Naja, meine 300s DeepSleep sind so grob real 280s. Bei allen aber 
relativ gleich.

von Phillipp (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnellen Antworten.

Einen Zeitserver übers Internet wird es nicht geben können,
aber die Zeit kann ja auch von einem Laptop im selben WLAN kommen.
Es kommt ja auch nicht auf die Genauigkeit der absoluten Zeit an.

Im Grunde reicht es ja, wenn der Startzeitpunkt bei allen gleichzeitig 
gesetzt wird
und dann die Sekunden gezählt werden.

Und, eigentlich ne blöde Frage,die Uhr läuft auch im SleepMode weiter?

Rein aus Interesse: Wie funktioniert die Zeitmessung in einem µC?

von Thomas E. (Firma: Thomas Eckmann Informationst.) (thomase)


Bewertung
0 lesenswert
nicht lesenswert
Phillipp schrieb:
> Wie sehr kann man sich auf die Genauigkeit der Zeitmessung
> (delay oder millis) verlassen?

So genau, wie es die Taktquelle hergibt. Mit Quarz über 5min praktisch 
100%.

Phillipp schrieb:
> Es geht darum, mehrere ESP gleichzeitig für 5 Minuten schlafen zu legen.

Wenn er delays oder millis runterzählt kann er nicht schlafen.

von Sascha_ (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Phillipp schrieb:

> Rein aus Interesse: Wie funktioniert die Zeitmessung in einem µC?

Man lässt nen Timer mit bekannter Frequenz laufen und zählt damit hoch.

Wenn die CPU schläft, muss es einen Hardware-Timer geben der nicht 
schläft und die CPU wieder wecken kann.

Die Doku vom ESP8266 war bisher immer etwas lückenhaft wenn es um die 
Hardware ging, hat sich das geändert?

von Thomas E. (Firma: Thomas Eckmann Informationst.) (thomase)


Bewertung
0 lesenswert
nicht lesenswert
Phillipp schrieb:
> Und, eigentlich ne blöde Frage,die Uhr läuft auch im SleepMode weiter?

> Rein aus Interesse: Wie funktioniert die Zeitmessung in einem µC?

Ich kenn den Controller nicht. Aber ich habe im Schnelldurchlauf durchs 
Datenblatt gesehen, daß er eine RTC hat. Das Teil läuft natürlich im 
Sleep weiter. Zumindest wird es einen Mode über Koma geben, in dem es 
das tut.

Es kommt auf die Konfigurierbarkeit dieser RTC an, wie lang die 
Aufweckintervalle eingestellt werden können. Fünf Minuten halte ich für 
unrealistisch. Eher was im Sekundentakt.

Angenommen er weckt den Controller im Sekundentakt. Dann muß eine 
Variable, die auf 300 gesetzt wurde, jedesmal um 1 runtergezählt werden. 
Wenn die auf 0 ist, macht der Controller Action, ansonsten geht er 
wieder in den Sleep.

Wenn alle fertig sind, setzen alle die Variable gleichzeitig(!) auf 300 
und das Spiel beginnt von vorn.

von This is a required field (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Es geht darum, mehrere ESP gleichzeitig für 5 Minuten schlafen zu legen.
>Nach dem Erwachen sollen diese dann wieder untereinander kommunizieren
>können.

Einen als Chef deklarieren, der die anderen aufweckt, ist Dir zu 
einfach?

von Purzel H. (hacky)


Bewertung
0 lesenswert
nicht lesenswert
Allenfalls waere es interessant, etwas zur Anwendung zu erfahren.

von Kurt (Gast)


Bewertung
0 lesenswert
nicht lesenswert
This is a required field schrieb:
>>
>
> Einen als Chef deklarieren, der die anderen aufweckt, ist Dir zu
> einfach?

Wie denn aus dem Schlafmodus aufwecken?

von rtc (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Phillipp schrieb:
> Es kommt ja auch nicht auf die Genauigkeit der absoluten Zeit an.

...ach nicht? Genau das wäre das, was als einheitliches Zeitnormal zur 
Synchronisation untereinander zur Verfügung stehen würde, vorhanden ist!

von Michael U. (amiga)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

der ESP8266 hat einen Sleeptimer. Geweckt wird er dann mit Reset. GPIO16 
liefert einen Low-Impuls bei Ablauf des Sleeptimers.
Eine andere Möglchkeit ihn zu wecken gibt es wohl nicht.
Wie genau der Timer ist habe ich nie nachgeschaut. Zur RTC habe ich auch 
wenig bis nichts gefunden, allerdings auch nicht sonderlich gesucht.

Was heißt untereinander kommunizieren? Gemeinsamer AP oder wie?
Die ESP müßten ja zumindest feststellen könne, ob alle wach sind und 
dann müßte einer eben den Befehl zu Schlafen schicken.

Gruß aus Berlin
Michael

von This is a required field (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Wie denn aus dem Schlafmodus aufwecken?

Per (GPIO, UART, ...-) Interrupt?
Oder geht das bei dem gar nicht?

von This is a required field (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Kolban's Book on ESP8266:

"In deep-sleep mode, the device is really asleep. Neither CPU nor WiFi 
activities take
place. The device is to all intents and purposes off ... with one 
exception ... it can wake up at a specified regular interval."

>Oder geht das bei dem gar nicht?

Scheint so...
Aber vielleicht genügt einer der anderen Sleep Modes


Ansonsten: G**gle:
ESP8266 Sleep Mode Function Description

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.