die mainLoop ist igg. nur die "Endlosschleife" in der main - ich hab das lediglich in eine extra Funktion gepackt, um einen Anhaltspunkt beim "Springen" zu haben.
Dass der Stack überläuft und sich das ganze aufhängt, wenn man einfach mainLoop() am ende der ISR aufruft, hab ich mir gedacht und auch schon feststellen müssen :/

ja ich werde wohl um Flags im mainloop nicht drumrumkommen und "anders designen" kann ich das programm leider auch nicht an dieser Stelle... ich hab mir gestern Nacht im Bett jedoch schon ein Paar Gedanken gemacht, wie ich dies am schönsten umsetzen könnte...

Es soll dann nach JEDEM ausgeführten Befehl ein Check ausgeführt werden und ich glaube mit einer switch Verzweigung in einer Schleife sollte sich sowas am schönsten umsetzen lassen

Code:
mainLoop()
{
  xyz...
  for(int i = 1; i <= 3; i++)
  {
    checkFlags();
    switch(i)
    {
      case 1: Befehl1;
                  break;
      case 2: Befehl2;
                  break;
      case 3: Befehl3;
                  break;
     }
  }
}
Was haltet ihr davon?

Danke übrigens an alle, die bisher auf meine Frage geantwortet haben