Ich weiß nicht, ob deine version so genau ist, da die schleife so oft aufgerufen wird, wie du millisekundne pausieren willst. Habe keine Ahnung, wie lange der Mikrochip braucht, aber ich denke meine ist besser (abgesehen davon, dass ich das mit den x/72 übersehen hatte)
Die beste Lösung (meiner Meinung wäre
Code:
//Deklaration der Funktionen
void Schlafen(long milliseconds);
int d2i(double d); // Double --> Integer
void main()
{
Schlafen(1337); //Funktionsaufruf
}
void Schlafen(long milliseconds)
{
long i; //Wiederholungs-variable
long rest; //Was bei der Division übrig bleibt
milliseconds *= 72 // Da Sleep(72); = 1ms
i = d2i(milliseconds / 255);
rest = milliseconds - d2i(milliseconds / 255 )*255;
{
int a;
for(a=1;a<=i;a++)
{
sleep(255);
}
}
if(rest!=0){sleep(rest)};
}
int d2i(double d)
{
return d;
}
In deiner Funktion ist ein fehler... müsste wohl heißen:
Code:
for(a=0;a<=zeit;a++)
// anstatt...
for(a=0;a<=1000 zeit;a++)
[/code]
Lesezeichen