- 3D-Druck Einstieg und Tipps         
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
    42
    Beiträge
    2.009

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

    Anzeige

    Powerstation Test
    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 Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    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
  •  

12V Akku bauen