User Tools

Site Tools


project:esp32-programming:interrupts

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