-         

+ Antworten
Ergebnis 1 bis 2 von 2

Thema: LPC1114 (Cortex M0): "sei()" und "cli()"

  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    34
    Beiträge
    1.986

    LPC1114 (Cortex M0): "sei()" und "cli()"

    Anzeige

    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
    #ifndef MfG
    #define MfG

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.11.2007
    Ort
    Berlin
    Beiträge
    470
    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

+ Antworten

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •