Guten Abend zusammen,
derzeit versuche ich einen High Level Interrupt auf dem ESP32 in der
ESP-IDF zu implementieren/konfigurieren. Ich möchte einen externen GPIO
Interrupt auf "High Level" ausführen. (Kann man das so sagen ? ;-)). Den
High Level Interrupt Handler wird in einer *.S (Assembly) Datei in
Assembler geschrieben und beim Kompilieren mit gelinked. Bezüglich dies
habe ich die "Anleitung" auf
https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/hlinterrupts.html
gelesen und soweit alle Schritte befolgt. Soweit ich das verstanden habe
muss man mit dem esp_intr_alloc() Funktion den High Level Interrupt zu
ordnen, was ich mittels folgender Zeile mache:
1 | /*
|
2 | esp_err_tesp_intr_alloc(int source,
|
3 | int flags,
|
4 | intr_handler_thandler,
|
5 | void *arg,
|
6 | intr_handle_t *ret_handle)
|
7 | */
|
8 | esp_intr_alloc(ETS_GPIO_INTR_SOURCE,(int)ESP_INTR_FLAG_HIGH,NULL,NULL,&gpio_intr_handle);
|
.
Laut Anleitung gilt für einen High Level Interrupt:
Flag=High Level
Handler=NULL
Handler Argumente=NULL
intr_handle=optional
Nur fehlt doch irgendwo die Information, welcher GPIO Pin genau diesem
High Level Interrupt zugeordnet werden soll. Ich habe leider auf der
git-hub Seite vom ESP32 kein Beispiel finden können. Vielleicht hat
jemand hier so einen High Level Interrupt auf dem ESP32 per ESP-IDF
implementiert und könnte mir an dieser Stelle Hilfestellung leisten.
Vielen Dank im Voraus !
Einen schönen Abend,
ALÖ