Vorsicht Falle: ESP8266 & ISR

  • Hi,

    nachdem mich das jetzt ein paar Stunden Zeit gekostet hat:

    1. Ein Serial.print() in einer ISR, die mit attachInterrupt() einem Pin zugwiesen wurde, funktioniert nicht. Unbedingt beachten: Ausgaben wie Serial.print() blockieren die ISR beim ESP8266.

    2. Ein attachInterrupt() an GPIO16 funktioniert nicht!

    Vielleicht hilft es ja dem einen oder anderen in eine dieser Fallen zu tappen ...

    cu,

    -ds-

  • Da leg ich noch zwei bei:

    1) Die ISR-Routine muss als ICACHE_RAM_ATTR deklariert werden, sonst kann es zu "Manchmal"-Abstürzen kommen.

    2) ISR-Routine gehört so kurz wie irgend möglich (nicht nur beim ESP8266), sonst knipst (mindestens beim ESP8266) der Watchdog ganz schnell das Licht aus und resettet den Chip. (Passend zu dreamshaders #1 :))

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!