Hallo, ich möchte gerne einen ESP32 über die Funktion esp_sleep_enable_ext1_wakeup über mehrere PINs aufwachen lassen. Das Programm wird in der Arduino IDe geschrieben, der ESP32 soll über eine Batterie versorgt werden. Es soll folgende Funktion erfüllt werden. Am Arduino wird an Pin 33 und 34 ein Reed Kontakt verschaltet. Sobald einer der Kontakte ein HIGH Signal liefert soll der (schlafende) ESP32 aufwachen und sein Programm "abfahren" und sich dann wieder schlafen legen. So wie hier beschrieben müsste es mit der genannten Funktion funktionieren: http://esp-idf.readthedocs.io/en/latest/api-reference/system/sleep_modes.html Leider weiss ich nicht, wie man die Pins 33 und 34 in die BIT Maske bringt. Ein Beispiel habe ich bis dato leider nicht gefunden. Hat hier jemand ein funktionierendes Beispiel? Danke im voraus Helmar
Helmar schrieb: > Leider weiss ich nicht, wie man die Pins 33 und 34 in die BIT Maske > bringt. Ein Beispiel habe ich bis dato leider nicht gefunden. Nein, mit einem Beispiel, besser als die Dinger bei Google, kann ich dir nicht dienen. Da ich selber keine ESP32 im Einsatz habe kann ich auch nicht für dich testen. Aber vermuten kann ich für dich! Der 2 Kern LX6 hat einen Haufen IOs Keiner davon taugt zum Wecken aus dem Deepsleep. Einzig die IOs des dritten Kerns, des ULP(ultra low power) Prozessors taugen dafür. > Pins 33 und 34 GPIO33 des LX6 entspricht RTC_GPIO08 des ULP GPIO34 des LX6 entspricht RTC_GPIO04 des ULP Aus meiner beschränkten Sicht ist die Maske dann: uint64_t maske = (1<<8)|(1<<4); ohne jede Gewähr
Der GPIO_NUM type hat 64 bit. Du kannst also einfach die bits 34 und/oder 35 setzen und übergeben.
Helmar schrieb: > Ein Beispiel habe ich bis dato leider nicht gefunden. Wieviel Zeit hast Du denn dafür aufgewandt? Können nicht mehr als 3 Sekunden gewesen sein, denn solange habe ich gebraucht, um das Beispiel "deep_sleep_example_main.c" im Original esp-idf zu finden...
hier wirds gut erklärt https://lastminuteengineers.com/esp32-deep-sleep-wakeup-sources/ ext1 External Wake-up Source !!! 1ULL << ext_wakeup_pin 33 & 34 nicht 1 & 4 !!!
mich würde intressieren in welchen RTC registern die pin bits stehen und oder wo man den wake_ext1 im ulp an und abschalten kann es gibt die goldene krone in bronce zu gewinnen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.