@inka:
Der Aufruf der main() und auch noch ohne Abbruch der do-while Struktur ist keine gute Idee!
Das dürfte irgendwann zu einem Stacküberlauf und zum Programmende führen.
Das sind dann schwer zu findende Fehler!

Was du ja wohl machen willst ist eine Art "Menüstruktur". Du drückst eine Taste und ein Programmteil startet. Dann beendet man das wieder durch einen Tastendruck und kommt zurück ins Auswahlmenü.
Das braucht etwas mehr Aufwand, als per brute-force in die main zurückzuspringen.
Du kannst aber z.B. im RP6Base_SELFTEST.c sehen, wie man ein solches Menü bauen kann.