Go Down

Topic: NodeMCU im Dauerbetrieb (Read 361 times) previous topic - next topic

noiasca

#15
Jul 31, 2019, 04:00 pm Last Edit: Aug 01, 2019, 07:51 pm by noiasca
OT:
cooool. Hatte eh schon ein Sekundenzähler ss=millis()/1000

Ist zwar nun doch ein sechszeiler, aber ok:
Code: [Select]

  static uint32_t lastMillis = 0;
  static uint8_t rolloverCounter = 0;
  uint32_t actualMillis = millis();
  if (actualMillis < lastMillis) rolloverCounter++;       // prüft Millis Überlauf
  ss = (0xFFFFFFFF / 1000 ) * rolloverCounter + (actualMillis / 1000);
  lastMillis = actualMillis;

merci.


DE: Wie man Fragen postet:
1. was hat man (Sketch und Hardware)
2. was SOLL es machen
3. was macht es: IST (Fehlverhalten, Fehlermeldungen, Serial.Output ...)
4. Eine Frage stellen bzw. erklären was man erwartet

Derfips

Ist zwar nun doch ein vierzeiler....
Auf die fünfte Zeile würde ich nicht verzichten.

Code: [Select]

  static uint32_t lastMillis = 0;
  uint32_t actualMillis = millis();
  if (actualMillis < lastMillis) rolloverCounter++;       // prüft Millis Überlauf
  ss = (0xFFFFFFFF / 1000 ) * rolloverCounter + (actualMillis / 1000);
  lastMillis = actualMillis;



Mit einem kleinen Trick geht's auch als vierzeiler.

Code: [Select]

  static uint32_t lastMillis = 0;
  uint32_t actualMillis = millis();
  if (actualMillis < lastMillis) rolloverCounter++;       // prüft Millis Überlauf
  ({ss = (0xFFFFFFFF / 1000 ) * rolloverCounter + (actualMillis / 1000); lastMillis = actualMillis;});




Gruß Fips
Meine Esp8266 & ESP32 Projekte => https://fipsok.de

Tell_me_why

Liegt ggf. daran, daß Du, statt 'disconnected' eher den Zustand 'broken' hattest?

Hi

Also der Code läuft. Das einzige was ich dann mache ist den Internetzugang für den ESP zu sperren. Der Code müsste doch theoretisch dann einfach weiterlaufen und sich nicht aufhängen oder ?
Das gegenteil davon habe ich zuerst probiert.

Mfg

GreyDiamond

Der Code sollte weiterhin funktionieren, da hast du Recht.
Gebt mir einen Hebel, der lang genug, und einen Angelpunkt, der stark genug ist, dann kann ich die Welt mit einer Hand bewegen. ~Archimedes

noiasca

Mit einem kleinen Trick geht's auch als vierzeiler.
*keks*

DE: Wie man Fragen postet:
1. was hat man (Sketch und Hardware)
2. was SOLL es machen
3. was macht es: IST (Fehlverhalten, Fehlermeldungen, Serial.Output ...)
4. Eine Frage stellen bzw. erklären was man erwartet

freddy64

Ich habe auch so einen "Dauerläufer". Ist es beim ESP8266 bzw. ESP32 möglich, die MAC-Adressen zu filtern?
Dann wäre mein Teil sicherer vor unbefugtem Zugriff wenn nur MAC aa:aa:aa und aa:aa:ab Zugriff auf den Webserver auf dem ESP hätten.

Der Code oben mit den millis() in Sekunden sieht auch interessant aus.
Was ist rolloverCounter? unsigned long?

noiasca

aktuell uint16_t, ehrlicherweise würden mir uint8_t auch reichen (255 Überläufe nach 49 Tage, 34 Jahre!).
DE: Wie man Fragen postet:
1. was hat man (Sketch und Hardware)
2. was SOLL es machen
3. was macht es: IST (Fehlverhalten, Fehlermeldungen, Serial.Output ...)
4. Eine Frage stellen bzw. erklären was man erwartet

Derfips

Der Code oben mit den millis() in Sekunden sieht auch interessant aus.
Was ist rolloverCounter? unsigned long?
In Beitrag #14 ist doch der Hyperlink zum Original drin.


Gruß Fips
Meine Esp8266 & ESP32 Projekte => https://fipsok.de

Go Up