Hallo,
ich habe eine kleine Frage zu Interrupts.
Infos:
Ich benutze das DE0 Board von Altera, arbeite mit NIOS II und die
Programmiersprache ist C.
Aktueller Stand meines Codes:
Grob erklaert, ich habe eine main() und dort ist eine while(1) schleife.
In der while-Schleife ist ein Automat mit eigenem Typedef implementiert.
Nun meine Frage:
In jedem Switch-Case gibt es ein Ereignis bzw. es werden einige Methoden
aufgerufen und oder paar LED's angesteuert, je nach Case-Fall.
Ich möchte gerne die Ereignisse die im Case-Konstrukt ausgeführt werden
gerne auslagern in einer Interruptserviceroutine.
Die States bzw. Case-Faille werden durch drücken von Buttons gewechselt.
Mein Problem:
Woher soll die ISR wissen in welchem Case-Fall ich bin und das dazu
passende Ereignis ausführen?
Gibt es die möglichkeit für 1 Button mehrere ISR's zu schreiben und
diese irgendwie zu unterscheiden?
Wuerde das mit den folgenden Methoden gehen?
void alt_irq_register(irNr, (void *) contextPtr, (void *) devPtr);
Hfft versteht man meine Frage, habe so gut wie möglich beschrieben.
Hoffe auf eine kleine Hilfe und oder ein Rat.
Vielen Dank im voraus! :)
Lg