-
-
Erfahrener Benutzer
Robotik Einstein
LPC1114 (Cortex M0): "sei()" und "cli()"
Hallo.
Kurze Frage: Gibts bei den LPC1114 (oder allgemein Cortex M0) die Möglichkeit, die Interrupts global zu (de-)aktivieren, wie es z.B. die C-Befehle cli() und sei() bei den AVRs machen?
Entweder ich such falsch oder da gibts tatsächlich nichts.
mfG
-
Erfahrener Benutzer
Roboter Genie
Hallo,
sieh Dir mal bitte den Anhang an:
__asm("CPSIE I"); /* enable Interrupts */
__asm("CPSID I"); /* Disable Interrupts */
Aber wenn Du die <intrinsics.h> mit ins Programm aufnimmst.
dann heißen die Funktionen vermutlich:
__enable_interrupt();
__disable_interrupt();
oder:
__enable();
__disable();
oder:
__disable_irq();
__enable_irq();
oder ähnlich, einfach mal in die Datei "intrinsics" reinschauen,
das hängt sicher vom verwendeten Compiler ab.
Ich habe eben mal beide Varianten mit dem Cortex M3 LPC1768 ausprobiert. Das funktioniert einwandfrei, wobei ich meinem C-Compiler nicht dazu überreden konnte nur eine einzige Zeile, wie im ASM-Code daraus zu machen. Trotz Optimierung machte der Compiler daraus 3 Assembler-Zeilen.
mfg. Siro
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen