Wieso PollSwitch(); x 2 ?
Das erste PollSwitch(); läuft ins Leere .. wenn in PollSwitch(); die Variablen gelöscht werden, dann kann das Zweite nie etwas werden ..
Außerdem ists mit dem Wartebefehl unschön .. nett zum Testen ...
Ich würde Dir raten, die Tastenabfrage (flag setzen bei gedrückt) durch einen Timer zu erledigen und im Hauptporgramm die Flags auswerten und dann löschen .. so würde Dir nix entgehen ..
Timer-Tastenabfrage kann auch zum Entprellen genommen werden, um Mehrfachreaktionen auszulösen oder zw. kurzen und langem Tastendruck zu unterscheiden ...
Du solltest PollSwitch(); auch mal reinstellen ....