Ungetestet:
Code:
#include <stdio.h>
#include <asuro.h>
#define false 0 // quick&dirty!
#define true 1
int main(void)
{
Init();
char aC[2];
unsigned char tanzen = false;
unsigned char Beschleunigung = false;
int z = 0, y = 0, t = 0, gas = 0, a = 50;
while( 1 )
{
if (z < 8) // Tanzen?
{
tanzen = true;
Beschleunigung = false;
}
else if (z < 12) // oder beschleunigen?
{
tanzen = false;
Beschleunigung = true;
}
else // oder nixtun?
{
tanzen = false;
Beschleunigung = false;
}
if (tanzen) // Wir tanzen den Gastanz
{
MotorSpeed(120,120);
if(gas < 5 )
MotorDir(FWD,RWD);
else if(gas < 15)
MotorDir(RWD,FWD);
else if(gas < 20)
MotorDir(FWD,RWD);
else if(gas < 30)
MotorDir(FWD,FWD);
else if(gas < 35)
MotorDir(RWD,FWD);
else if(gas < 45)
MotorDir(FWD,RWD);
else if(gas < 50)
MotorDir(RWD,FWD);
else if(gas < 60)
MotorDir(RWD,RWD);
else gas=0;
gas=gas+1;
}
if(Beschleunigung) // Linker Antrieb bis 255 beschleunigen
{
MotorDir(FWD,FREE);
MotorSpeed(a,0);
a=a+5;
if(a > 255)
a = 255;
}
else // keine Beschleunigung
{
MotorDir(FREE,FREE); // bedeutet bremsen
a=50; // und a auf Startwert setzen
}
utoa (z, aC, 10); // debugen
SerWrite(aC, 2);
SerWrite (" z\n\r", 5);
for (t=0; t< 120; t++)
Sleep (72);
utoa (a, aC, 10);
SerWrite(aC, 12);
SerWrite (" a\n\r", 8);
for (t=0; t< 120; t++)
Sleep (72);
y++; // Zähler weiterschalten
if (y > 5)
{
z++;
y=0;
if (z > 15)
z=0;
}
}
return 0;
}
So könnte ich mir die Funktion des Programms vorstellen.
Gruß
mic
Lesezeichen