Hallo

In dieser Version deines Programms wird auf Tasten nicht mehr reagiert wenn die Funktion FollowLine() ausgeführt wird. Es gibt keine Entkommen aus while(1) {...}!

Warum betreibst du in main() den großen Aufwand um das Ergebniss von PollSwitch() zu überprüfen und in FollowLine() prüfst du nur einmalig auf ein (PollSwitch()==0)? (kleiner als 0 kann das Ergebniss von unsigned char PollSwitch() nicht werden)

btw: In FollowLine() sollte kein erneutes Init() aufgerufen werden.
if (PollSwitch()>=0); in main() ist natürlich auch unnötig, den Rest des Programms habe ich mir noch nicht genauer angeschaut.

Gruß

mic