ESP32 resettet

Gast #7173722
Lesenswert?
• ▲
▼
Hallo,
ich habe einen ESP32 bei dem ich einem Pir-Sensor angeschlossen habe.
Doch jedesmal wenn dieser auslöst, resettet sich mein Programm und dass 
immer wieder.

Wie kann ich rausfinden, woran das liegt?
Angehängte Dateien:
Gast #7173741
Lesenswert?
• ▲
▼
Hi,

zum einen das was J.S. sagt prüfen.

Und dann führst du ESP_LOGI in der isr aus.
Das hatte ich auch mal versucht und das selbe Phänomen gehabt wie du.
Setze in der isr lediglich ein Flag, werte das dann in der main() aus 
und generiere dein Log dort.

Gruss tobi
#7173766
Lesenswert?
• ▲
▼
die Espressif Doku rät auch davon ab die logging Funktionen in ISR zu 
benutzen. ESP_DRAM_LOGx könnte funktionieren, würde ich aber auch nur 
maximal zum Test bei Ints mit geringer Frequenz als q&d Test einbauen. 
Einen gpio umschalten geht auch einfach und kann mit LA kontrolliert 
werden.
Moderator (Firma: Titel) Persönliche Seite #7176225
Lesenswert?
• ▲
▼
Jonas schrieb:
> ich habe einen ESP32 bei dem ich einem Pir-Sensor angeschlossen habe
Ist es tatsächlich so, dass ein schnarchlangsames Ding wie ein 
PIR-Sensor einen Interrupt braucht? Warum fragst du den nicht einfach in 
einem 100ms-Task ab? Schneller wird da wohl kaum was passieren...

Und sonst: wie sieht der Schaltungsaufbau aus? Woraus wird das Ganze 
versorgt? Passen die Pegel vom IR-Sensor und dem µC zusammen?
Gast #7176384
Lesenswert?
• ▲
▼
Lothar M. schrieb:
> Ist es tatsächlich so, dass ein schnarchlangsames Ding wie ein
> PIR-Sensor einen Interrupt braucht?

Ja.
Ziel war es den ESP in den DeepSleep zu bringen und durch den Sensor 
aufzuwecken.

Das funktioniert auch.
Allerdings wollte ich zyklisch auch andere sachen machen und den ESP per 
Timer aufwachen lassen.

Da der Timer durch das aufwachen durch ext0 (PirSensor) aber abgebrochen 
wird und ich nicht weiß, wie viel Restzeit noch wäre, kann es vorkommen, 
dass der ESP gar nicht durch den Timer aufwacht (je nachdem wie der 
PirSensor detektiert).

Daher bin ich doch am überlegen öfters (nur durch den Timer) aufzuwachen 
und den PirSensor abzufragen.

hacker-tobi schrieb:
> Und dann führst du ESP_LOGI in der isr aus.
> Das hatte ich auch mal versucht und das selbe Phänomen gehabt wie du.
> Setze in der isr lediglich ein Flag, werte das dann in der main() aus
> und generiere dein Log dort.

Das war es auch.
Habe den Log nur zum Testen reingemacht, um zu sehen das es auch 
wirklich ausgelöst wird.
Mit einem Flag konnte ich das ganze auch testen und hat letztendlich 
auch funktioniert.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.