-
-
Erfahrener Benutzer
Roboter Experte
Hallo,
schau dir bitte einmal folgenden Link zur Gültigkeit von Variablen an Link
Sowohl 11.6, 11.7 und wenn du schon dabei bist passt 11.8 zum Thema.
Du hast Izeit_1 lokal definiert. Es muss aber global definiert sein, um in allen Funktionen gültig zu sein. Für die Mikrocontroller Welt ist dann noch in deinem Fall das Schlüsselwort volatile wichtig. Der Compiler kann aus dem Code nicht Feststellen, dass die ISR ja jederzeit aufgerufen werden kann. Daher kann es durch Optimierungen zu Fehlern kommen. Volatile sagt einfach aus, dass die Variable zur Verwendung immer aus dem Speicher geladen werden muss und nicht in einem Register bevorratet werden darf.
Wenn du es genauer wissen möchtest, im Wissenbereich gibt es einen Artikel zu Interrupts und deren Fallstricke.
Gruß
Jens
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen