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


von romanua (Gast)


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.

von A.K. (Gast)


Lesenswert?

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

von A.K. (Gast)


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."

von romanua (Gast)


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?).

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.