Du brauchst doch nur in deiner Programmschleife eine entprellte (debounce)Tasterabfrage durchführen.
Wenn Taster gedrückt gehezu.. in ein Subprogram.
Wenn diese bearbeitet wurde, macht dein Controler an der Stelle weiter wo er aufgehört hat.

Eine Tasterabfrage die durch Menschenhand ausgeführt wurde, braucht doch keine Echtzeit.