Sehe ich das richtig, dir fehlt die Verzögerung? Dann solltest du mal in der asuroanleitung unter Sleep() (Kapitel 9.2.5) nachschauen:

Code:
#include "asuro.h"

unsigned int i;

int main(void)
{
	Init();
	while(1)
	{
		if(PollSwitch() == 0)
	   {
			StatusLED(RED);
		}
		else
		{
     		StatusLED(YELLOW);
			for(i=0; i<1000; i++) Sleep(72); // bei neueren Libs 36 für 1/1000sec
		}
	}
 	return(0);
}
Anstelle der StatusLED kommen dann die Motorfunktionen...

[Edit]
Weil ich heute unterwegs bin hier noch vorsorglich der Code mit sicherer Tastenabfrage:
Code:
#include "asuro.h"

unsigned int i;

int main(void)
{
	Init();
	while(1)
	{
		if(PINC & (1<<PC4)) // Tasteneingang direkt abfragen
	   {
			StatusLED(RED);
			MotorDir(FWD,FWD);
			MotorSpeed(150,150);
		}
		else
		{
     		StatusLED(YELLOW);
			MotorDir(RWD,RWD);
			MotorSpeed(0,150);
			for(i=0; i<1000; i++) Sleep(72); // bei neueren Libs 36 für 1/1000sec
		}
	}
 	return(0);
}