INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Frage zu Millis im Loop - ESP32
21.11.2020, 14:03 (Dieser Beitrag wurde zuletzt bearbeitet: 21.11.2020 14:04 von Stargazer.)
Beitrag #1
Smile Frage zu Millis im Loop - ESP32
Hallo Zusammen,

ich sitze immer mal wieder an einem Problem, was wahrscheinlich keines ist.
Der limitierende Faktor sitzt wahrscheinlich wieder vor dem Bildschirm. Darum wollte ich mein Problem hier einmal posten. Und zwar hatte ich mit dem ESP32 und dem BLEScan - Beispiel etwas rumgespielt und dort eine Anwesenheitserkennung mit einem G-Tag gebastelt. Dieser wird per MAC erkannt und gibt derzeit nur einen Text im seriellen Monitor aus. Später soll das vielleicht mal einen Garagentoröffner ergeben Smile.

Nun habe ich das ganze so im loop geregelt, dass er alles über die Millis - Funktion abhandelt. Ein delay kommt da nicht gut, da er später eine einfache Website anzeigen soll. Doch diese wird dann nicht mehr ordentlich aufgebaut. Darum bleibe ich bei millis. Soweit so gut.

Nun soll er, wenn er die MAC erkannt hat, eine millis - Schleife auch erst dann starten. Aber...da bin ich anscheinend zu doof zu. Hier mal der Code, worum es geht:


Code:
if (Pausenzeit == 1)

  {
    Serial.println("Pausenzeit des Scanners wird neu gesetzt......");
    


    ///////////////////////////////////////////////////////Aufenthaltspause im Schaltbereich wird festgelegt.///////////////////////////////////////////////////

    if (currentMillis - previousMillis2 > Schaltpause)
    {
      Hilfsschalter = 0;
      Serial.println("Hilfsschalter - Reset via Millis wird durchgeführt ");
      // Serial.print("Pausenzeit im if - Teil Schaltpause : ");
      Serial.println(Pausenzeit);

      previousMillis2 = currentMillis;

      char* s_pause = config.s_pause;
      interval2 = atoi(s_pause);
      Schaltpause = (interval2 * MillisFaktor);
      Pausenzeit = 0;

    }
  }

Die variable Pausenzeit wird mit dem erkennen des G-Tags auf 1 geschaltet.
Dann soll das ganze Geraffel starten. Aber nur dann. Mein Problem liegt mit dem Hauptaugenmerk auf der Pausenzeit = 0;. Diese deaktiviert die Schleife dann wieder, das ist mir bewusst. da habe ich schon irgendwie alles durchprobiert.
Entweder läuft die Schleife dann normal mit und das permanent. Oder aber nur einmal..und dann nie wieder, obwohl die variable auf 1 steht.
Die variable "Hilfsschalter" ist nur für das "wieder scharf schalten" vorgesehen.


Kann mir jemand eine Säge zu meinem Brett vor dem Kopf reichen ?

Vielen Dank an euch...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.11.2020, 15:27
Beitrag #2
RE: Frage zu Millis im Loop - ESP32
Ohne die Deklaration der Variablen zu kennen, kann man nur raten.
Sind die beteiligten Variablen alle unsigned long?

Warum machst Du erst eine Pause, wenn Du die Pausenzeit setzen willst?
Ich verstehe Deine Logik nicht.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.11.2020, 16:04
Beitrag #3
RE: Frage zu Millis im Loop - ESP32
Ich könnte mir vorstellen, dass die Variable, in der du die MAC zwischenspeicherst, nicht gelöscht wird und deswegen die Pausenzeit immer wieder direkt auf 1 setzt...
Gruß Jan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.11.2020, 16:20
Beitrag #4
RE: Frage zu Millis im Loop - ESP32
Hi,

also...

Die variablen der Pausenzeit und der Schaltpause sind beide int.
currentMillis is eine unsigned long.

Die MAC wird zuverlässig nur einmal erkannt und auch in keiner variable übernommen.

Ich müsste eigentlich nur sehen, dass er die millis - Schleife nur einmal abarbeitet. Nämlich so lange wie Pausenzeit = 1 ist.
So die Vorstellung. Ist dann die millis - Schleife abgearbeitet, setzt sie die Pausenzeit wieder auf 0 und würde dann warten, bis
die Pausenzeit wieder 1 wird. Das wäre genau das, was ich bräuchte.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.11.2020, 16:58 (Dieser Beitrag wurde zuletzt bearbeitet: 21.11.2020 17:01 von MicroBahner.)
Beitrag #5
RE: Frage zu Millis im Loop - ESP32
(21.11.2020 16:20)Stargazer schrieb:  Ich müsste eigentlich nur sehen, dass er die millis - Schleife nur einmal abarbeitet. Nämlich so lange wie Pausenzeit = 1 ist.
So die Vorstellung. Ist dann die millis - Schleife abgearbeitet, setzt sie die Pausenzeit wieder auf 0 und würde dann warten, bis
die Pausenzeit wieder 1 wird.
Wo ist da eine millis Schleife? Ich sehe nur ein if. Und wenn das einmal abgearbeitet wird, wird auch 'Pausenzeit' wieder auf 0 gesetzt, und das wars dann.

Solange Du nur dieses Fragement zeigst, kann man da gar nichts weiter sagen.

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  void loop-Absturz durch Endlosschleife wonk 5 57 Gestern 21:44
Letzter Beitrag: wonk
  MicroPython auf ESP32-S luemar 9 128 Gestern 21:01
Letzter Beitrag: Tommy56
  AES256 / SHA384 Chiffren bei HTTPS requests mit ESP32 nutzen TBMSam 0 42 Gestern 13:47
Letzter Beitrag: TBMSam
  ESP32 und PI mit BLE codingalex 1 138 17.11.2020 12:10
Letzter Beitrag: Tommy56
  ESP32 Ethernet shrimps 34 26.031 15.11.2020 09:57
Letzter Beitrag: miq19
  ESP32 CAM Flashlamp schalten RaspiUser0815 9 696 13.11.2020 17:16
Letzter Beitrag: RaspiUser0815
  ESP32 arbeitet nicht in Arduino-IDE wonk 3 230 12.11.2020 18:16
Letzter Beitrag: wonk
  Hilfe bei async-mqtt-client für ESP32 amshh 7 293 12.11.2020 09:19
Letzter Beitrag: amithlon
  ESP32 soll auf MySQL schreiben frankmehlhop 11 635 06.11.2020 21:43
Letzter Beitrag: Tommy56
  Variablenprobleme bei ConfigManager und ESP32 Stargazer 4 266 05.11.2020 19:47
Letzter Beitrag: Stargazer

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste