Hallo

Du sendest pro Richtung jeweils nur 5 Impulse und in der Pause wird gar kein Impuls gesendet. Deshalb "federt" dein Greifer in der Pause mit Schaumstoff zurück. Versuche es mal so:

Code:
#include "asuro.h"

// Alle Sleep()s auf Basis der orginalen CD-Library mit 72kHz-Timer
// Sleep(72) dauert dann ca. 1ms

int main (void)
{
	//int x;
	//int i;
	int p;

	Init();

	while(1) // Programm endlos ausführen
	{
		// 1 Sekunde Greifer schliesen
		StatusLED(YELLOW);
		for(p=0; p<50; p++) // 50*22ms ergibt ca. eine Sekunde Richtung "Greifer schließen"
		{
			FrontLED(ON);
			Sleep(80);
			FrontLED(OFF);
			Sleep(255);Sleep(255);Sleep(255); Sleep(255);Sleep(255);Sleep(255); // 21ms Impulspause
		}

		// 2 Sekunden halten
		StatusLED(RED);
		for(p=0; p<100; p++)
		{
			FrontLED(ON);
			Sleep(80);
			FrontLED(OFF);
			Sleep(255);Sleep(255);Sleep(255); Sleep(255);Sleep(255);Sleep(255);
		}

		// 1 Sekunde Greifer öffen
		StatusLED(GREEN);
		for(p=0; p<50; p++) // 50*23ms ergibt ca. eine Sekunde Richtung "Greifer öffnen"
		{
			FrontLED(ON);
			Sleep(175); // 2,5ms?
			FrontLED(OFF);
			Sleep(255);Sleep(255);Sleep(255); Sleep(255);Sleep(255);Sleep(255);
		}

		while(PollSwitch() == 0) // Blinken bis Taste gedrückt wird, dann Programm wiederholen
		{
			StatusLED(RED);
			for(p=0; p<200; p++) Sleep(72);
			StatusLED(OFF);
			for(p=0; p<300; p++) Sleep(72);
		}
	}
	return(0); // wird nie erreicht!
}
ungetestet, die Tabs rauben mir den letzten Nerv *evil*

Gruß

mic