mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupt Handling Infineon XC886


Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,
ich habe folgende Frage zum Handling einer Interruptanforderung.

Das Flag EXF2 löst einen Interrupt (Einsprung Adresse 00B2) aus, diese 
Anforderung wird in einer Interrupt Routine bearbeitet. Während der 
Bearbeitung wird eine weiterere Interruptanforderung durch das Flag TF2 
ausgelöst, dieser hat die gleiche Einsprungadresse (00B2) wie das Flag 
EXF2.

Meine Frage
Nach dem die Erste Interruptanforderung durch den Reti Befehl 
vollständig bearbeitet wurde, wird dann im Anschluss die 
zwischenzeitlich erneute Anforderung - urch das Flag TF2- bedient, oder 
wird diese Anforderung durch den Reti Befehl der abgearbeiteten ersten 
Anforderung ignoriert.

Wäre schön wenn ich eine schnelle Antwort erhalten könnte.

Viele Dank...

Dirk

Controller: XC886 von Infineon

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dirk schrieb:
> wird diese Anforderung durch den Reti Befehl der abgearbeiteten ersten
> Anforderung ignoriert.

Reti mach garnichts mit den Flags.

Manche Flags werden beim Interrupt-Eintritt automatisch gelöscht, andere 
müssen händisch gelöscht werden.


Peter

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,
ja, mit den Flags nicht.
Die Frage war nur die, ob das Flag in dem Fall "TF2" bearbeitet wird, 
wenn bei gleicher Einsprungadresse die Erste Anforderung  "EXF2" 
abgearbeitet und durch den Befehl Reti vollständig abgeschlossen wurde. 
So das mir keine Interruptanforderung verloren geht, wenn diese in der 
Bearbeitung einer vorherigen Anforderung generiert wurde. Natürlich 
immer bezogen auf die gleiche Sprungadresse z.B.(00B2) Diese 
Einsprungadresse wird von beiden Flags genutzt (EXF2 und TF2).

Das der Reti Befehl keine Flags beeinflusst ist mir klar.

Wenn ich dich richtig verstehe wird nach Abschluß der ersten Interrupt 
Routine (verursacht durch EXF2) eine erneute Interrupt Anforderung z.B. 
durch (TF2) bearbeitet, auch wenn diese während der Bearbeitungsdauer 
von "EXF2" verursacht wurde und die gleiche Einsprungadresse hat (00B2).

Viele Dank für deine Mühe
Gruss Dirk

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.