project:esp32-programming:interrupts
Table of Contents
ESP32 Interrupt-Programmierung
Erkennung der Flanke
Abfrage des GPIO-Status
Ansatz: Abfrage des PINs unmittelbar nach Auslösung des Interrupts.
void IRAM_ATTR isr_handler(void* arg) {
int pinState = digitalRead(PIN);
if(pinState == HIGH) {
// steigende Flanke
} else {
// fallende Flanke
}
}
Einzelne ISRs
Ansatz: Getrennte ISRs für steigende und fallende Flanken
void IRAM_ATTR rising_isr_handler(void* arg) {
// steigende Flanke
}
void IRAM_ATTR falling_isr_handler(void* arg) {
// fallende Flanke
}
/*
* setup
*/
pinMode(PIN, INPUT);
attachInterrupt(PIN, rising_isr_handler, RISING);
attachInterrupt(PIN, falling_isr_handler, FALLING);
project/esp32-programming/interrupts.txt · Last modified: 2023/11/02 12:17 by 78.43.125.127