www.mikrocontroller.net

Forum: Compiler & IDEs Wie Interrupts in einer ISR wieder aktiveren?(ARM)


Autor: Mark .. (mork)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie kann man beom LPC2138 in einer ISR die Interrupts wieder aktivieren? 
Wenn ich enableIRQ() an der gewünschten Stelle schreibe, macht der 
Controller einen Dauerreset. Dass der Stack überfüllt wird kann ich 
eigentlich ausschließen, weil mind. 1 ms zwischen zwei Interupts ist und 
in der ISR kaum was gemacht wird. Weiss jemand Rat?

MfG Mark

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wirst dich ein bischen tiefer in die Interrupt-Verarbeitung von ARMs 
einlesen müssen. IRQs werden in einem eigenen Registerkontext 
ausgeführt. Dieses Verfahren erlaubt aber keinen weiteren Interrupt 
innerhalb eines Interrupts. Um sowas zuzulassen muss man vorher den 
Modus wechseln. Kann man als Designfehler der Architektur abbuchen.

Siehe beispielsweise AN10381 von NXP.

Autor: Martin Thomas (mthomas) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Suchbegriffe: "nested interrupts" oder "interrupt nesting".
Diverse AT91 ARM7TDMI Beispiele von Atmel enthalten einen IRQ 
Assembler-Wrapper mit "nesting". Kann man leicht für LPC2000 portieren 
(Anpassung AIC->VIC)

Autor: Mark .. (mork)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo mthomas,

vielen Danke für die Stichwörter! Ich hab die bei google eingegeben und 
schnell einen Beispielcode gefunden, der bei mir nach einigen 
Anpassungen problemlos lief.

MfG Mark

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.