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