User Tools

Site Tools


project:esp32-programming:interrupts

This is an old revision of the document!


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.1698923844.txt.gz · Last modified: 2023/11/02 12:17 by 78.43.125.127