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
Lesezeichen