Hallo,
ich habe in meiner main() ein Menü aufgebaut, dass verschiedene unterfunktionen aufruft. Funktioniert alles soweit, allerdings wird nach einem Interrupt nicht an die richtige Stelle gesprungen.

Daher habe ich vor der main() noch 2 volatile Varibalen deklariert
Code:
volatile int8_t agrobot;   //Menü-Ziffer
volatile int8_t agrobot2; //Vorherige Menü-Ziffer
Der Interrupt soll nun "agrobot2" mit der aktullen Menü-Ziffer belegen, aus der er gerade raus gesprungen ist, anschließend wird "agrobot" mit einer neuen Ziffer belegt, die auskunft über die aufzurufende Funktion gibt.

Code:
SIGNAL (SIG_INTERRUPT0) //Auffahrschalter Front
{
	agrobot2 = agrobot;
	agrobot = MENU_backevade; //MENU... ist per define festgelegt
}//Auffahrschalter Front
Darauf soll das Hauptmenü die Funktion aufrufen, die vom Int. ausgelöst werden soll. Dieser wird als Parameter "agrobot2" übergeben, was anschließend einfach zurück gegeben wird, und somit als nächster Menüpunkt verwendet wird:

Code:
while(1) //Hauptschleife
{
    //Aufgabe/Funktion abfragen
    
    switch ( agrobot )
    {
        case MENU_error:        agrobot = error();                  //Fehlerausgabe
             					break;
        case MENU_menu:         agrobot = menu();                   //Menü
                                break;
        //...weitere Menüpunkte
        case MENU_backevade:    agrobot = backevade(agrobot2);      //Rückwärts ausweichen
                                break;
        case MENU_frontevade:   agrobot = frontevade(agrobot2);     //Vorwärts ausweichen
                                break;
    }

}//Hauptschleife
Wird alles soweit kompiliert, allerdings passiert beim Auslösen des Interrupts nichts.

Kann mir da jemand helfen wo der Fehler liegt, oder sagen wie es besser geht?

Ich hoffe das ist nicht zu speziell und ich habe mich vernünftig ausgedrückt