Das Programm ist aber so geschrieben, das durch StartSwitch() ein Interrupt Befehl eingeleitet wird, der, sobald ein Taster gedrückt wird, die variable switched auf True stellt. Somit fängt sich der Asuro in der while(!switched); Schleife, bis ein Taster gedrückt wurde und fragt danach nurnoch mit PollSwitch() ab auf welcher Seite die Taster gedrückt worden sind, um entsprechend auszuweichen.

Ja. Aber wird auch ein Interrupt ausgelöst, wenn ich die Taste LOSlasse?
Wenn nicht, kann der Roboter gar nicht merken, dass man los lässt, weil er im drehen fest hängt.
Sprich: es gibt nirgendwo was, wo er auf "nicht gedrückt" wieder reagieren kann,w enn er mal mit drehen anfängt.