nichtperiodischer Interrupt

Gast #253210
Lesenswert?

Hallo zusammen,

ich habe eine kleine Interruptstruktur von zwei Interrupts die von
Timer1 und Timer2 periodisch aufgerufen werden. Nun brauche ich noch
einen dritten Interrupt, der immer dann läuft, wenn die anderen beiden
nicht laufen (quasi niederste Priorität). Kann mir jemand sagen, mit
welchem Ereignis dieser Interrupt angestoßen wird (er muß nicht
periodisch laufen). Wie könnte ich das realisieren?

Ich habe die Frage schonmal gestellt, hatte aber das Gefühl, daß es
unter gegangen ist, weil der Thread zu lang war...

Viele Grüße und herzlichen Dank,

Horst
Gast #253211
Lesenswert?

Ich kenne Deinen alten Thread nicht (und werde jetzt auch nicht nach ihm
suchen) und habe auch nicht viel Ahnung von DSPs. Ich möchte Dich jedoch
darauf hinweisen, dass wahrscheinlich niemand wissen kann, was in Deinem
System wie funktioniert, wenn Du uns nichts darüber sagst (z.B. welcher
DSP bei Dir läuft).

Woher sollen wir wissen, was in Deiner Schaltung Interrupts auslösen
kann?

Gruß, Michael
Gast #253213
Lesenswert?

Hallo,

ich glaube, ich habe die Lösung:

Ich habe jetzt eine while(1)-Schleife am Ende der main-Routine
eingebaut, so daß die CPU nie aus der main-Routine raus laufen kann. In
dieser while(1)-Schleife rufe ich die Funktion auf, die ausgeführt
werden soll, wenn keiner der beiden anderen Interupts aktiv ist.

Müßte stimmen, oder?

Viele Grüße und herzlichen Dank,

Horst
Gast #253214
Lesenswert?

und du willst sonnst nichts anderes aufrufen?

nur die 2 ints und eine funktion?

Dann würd ich auch sagen dass das so klappt.
Aber nicht grad schön...

Du könntest doch ne art "Semaphore" benutzen.
2 stück, immer als erstes bei der INT Routine ausführen.
INT1Running=TRUE;
INT2Running=TRUE;

if ((INT1Running || INT2Running) == FALSE)
{
Funktionsaufruf();
}


Der if block in deiner while(1) dürfte das nun auch können.

Gruß Andreas
Gast #253215
Lesenswert?

hmm allerdings könnte auch der funktionsaufruf() dann natürlich noch
unterbrochen werden durch die 2 timerints. Falls du das nicht möchtest
schalt sie davor ab und danach wieder an.

Gruß Andreas

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren