Das Programm wird ausgeführt, als ob es den Teil mit der Linienverfolgung gar nicht gäbe.

DEr 2te Teil funktioniert Problemlos. Also macht er:
if (b1 == 0 && b2 == 0){

Selbst bei einer sehr toleranten Abfrage, habe mal 17 genommen kommt es nach einer immer unterschiedlichen Zeit dazu das er plötzlich anhält, also das Programm weiter abläuft, als ob der Taster gedrückt worden wäre. Jedoch ist um so höher sie Zahl die Zeit länger. Was könnte da das Problem sein?

Kann man den Wert von PollSwitch() über die IR-Schnittstelle immer an den PC senden? Dann könnte man das mal anschauen.