www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT91SAM7 interrupt wird nicht ausgeloest, warum?


Autor: romanua (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein kleines Program auf AT91SAM7S64, in dem PIT und TC2 timers
laufen. Bei PIT oder TC2 Compare Events soll je ein Interrupt ausloest
werden.


PIT (source 1)und TC2(source 14) werden als Interrupt Sources mit den
gleichen Einstellungen eingeschaltet: High Level Sensitive, Priority
=0.

In den Interrupt Handlern werden Interrupts nicht re-aktiviert.

Die Frequenzen, mit denen  die beiden Interrupts ausgloest werden
sollen, sind ungefaehr gleich.

Wenn ich das Program laufen lasse, wird jeder Interrupt nur EINMAL
ausgeloest und dann bleibt das Program in der "loop: b loop"
Schleife. Wenn ich es unterbreche und AIC Register anschaue, sind die
beiden Interrupt Sources pending (AIC_IPR1,14=1) und masked
(AIC_IMR1,14=1), aber ausgeloest werden die nicht.

Wenn ich aber die Frequenzen relativ einander verstelle, zb
2*F_PIT=F_TC2, laeuft alles OK.

Woran kann es liegen?

Gruss,
R.




P.S.
Falls weitere Einzelheiten noetig sind, bitte sagt welche, ich werde
die entsprechenden Program-Ausschnitte posten.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schuss ins Blaue: Müssen Interrupts beim SAM7 Interrupt Controller
acknowledged werden, wenn der Handler durch ist?

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yep, dachte ich doch, sie müssen. Vorher passiert auf gleicher oder
niedrigerer Ebene nichts: "The write of AIC_EOICR is the exit point of
the interrupt handling."

Autor: romanua (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo A.K,

Danke fuer die Antwort,

so endet jeder Interrupt Handler bei mir:

@;EXIT------------------------------------------------------------------ 
--------
    ldr   r0,=AIC_EOICR
    str   r0,[r0]
    ldmea sp!,{r0-r12,pc}^
@;---------------------------------------------------------------------- 
--------

Die Interrupts werden also wohl acknowledged (wie auf Deutsch in diesem
Kontext?).

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.