Hi,
unsigned char t1; ...... usw. musst du nur schreiben wenn du t1 usw. auch zuordnest. Z.B. t1 = Pollswitch();
wenn du nur Pollswitch() verwendest musst du nichts deklarieren.

Zu Pollswitch();:
Alle Taster sind an einem ADC mit verschiedenen widerständen angeschlossen. Pollswitch liest diesen ADC aus. Je nach gedrücktem Taster bekommst du einen anderen Wert. Taster 1=1, Taster 2 = 2, Taster 3 = 4, Taster 4 = 8, Taster 5 = 16, Taster 6 = 32.
Wenn du sagst if (Pollswitch() == 1) dann heist das, dass er nur etwas ausführt wenn Taster 1 gedrückt wurde, wenn ein anderer gedrückt wurde interessiert das den controller nicht, den diese liefern nicht 1, sondern was anderes.

Zu deinem Code:
Wenn du einen Taster drückst wird er stehen bleiben, aber nur wenn er gedrückt ist, sobald du ihn auslässt fährt er vorwärts. Das Msleep(350) brauchst du nicht.

mfg