INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Interrupt-Routinren bei ESP
08.11.2019, 23:42 (Dieser Beitrag wurde zuletzt bearbeitet: 09.11.2019 11:36 von Bitklopfer.)
Beitrag #1
Interrupt-Routinren bei ESP
Die ESP32 / ESP8266 haben eine Eigenheit gegenüber anderen mit der Arduino-IDE programmierbaren Prozessoren. Sie binden einen Teil ihres Programmspeichers (Flash) über SPI zur Laufzeit in den Adressbereich des Prozessors ein. Das geht schief, wenn in diesem Programmspeicherbereich Interruptroutinen liegen. Die müssen immer zur Verfügung stehen, sonst läuft der Interrupt ins Leere und der Prozessor in eine Exception.

Deshalb müssen Interruptroutinen eine besondere Kennzeichnung bekommen, damit sie im internen Speicherbereich gehalten werden. Diese Kennzeichnungen sind zwischen ESP8266 und ESP32 verschieden (sonst wäre es ja langweilig).

ESP8266:
Code:
void ICACHE_RAM_ATTR intRoutine() {
  // mache was
}

ESP32:
Code:
void IRAM_ATTR intRoutine() {
  // mache was
}

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Heute, 14:31
Beitrag #2
RE: Interrupt-Routinren bei ESP
Hallo Tommy,

Danke für die Info, interessant zu wissen.
Auch wenn ich es in absehbarer Zeit nicht benötige, aber man weiß ja nie. Wink

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste