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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren