Go Down

Topic: NodeMCU im Dauerbetrieb (Read 395 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.


how to react on postings:
- post helped: provide your final sketch, say thank you & give karma.
- post not understood: Ask as long as you understand the post
- post is off topic (or you think it is): Stay to your topic. Ask again.
- else: Ask again.

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*

how to react on postings:
- post helped: provide your final sketch, say thank you & give karma.
- post not understood: Ask as long as you understand the post
- post is off topic (or you think it is): Stay to your topic. Ask again.
- else: Ask again.

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!).
how to react on postings:
- post helped: provide your final sketch, say thank you & give karma.
- post not understood: Ask as long as you understand the post
- post is off topic (or you think it is): Stay to your topic. Ask again.
- else: Ask again.

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