if (PollSwitch()>8); // das Semikolon ist hier falsch!

Vermutlich werden nun die laufenden Motoren die PollSwitch()-Abfrage stören:

Code:
#include "asuro.h"
int main(void)
{
	int p;
	int i;
	char t1,t2;

	Init();
	p=150; //Startwert
	MotorDir(FWD,FWD); //Richtung festlegen
	MotorSpeed(p,p);
	t2=PollSwitch();

	while(1) //wiederhole folgendes
	{
    	t1=PollSwitch();
		if ((t1>7) && (t1==t2)) // Wenn Tastenwert größer 7 und beide Lesungen gleich sind
    	{
        	StatusLED(RED);
			if(p<235) p=p+20;
			MotorSpeed(p,p);
        	for(i=1;i<500;i++) //eine halbe Sekunde warten, damit es nicht zu schnell geht
         	Sleep(72);
			StatusLED(GREEN);
    	}
    	t2=t1;
	}
	return 0;
}
Gruß

mic