Ungetestet:
So könnte ich mir die Funktion des Programms vorstellen.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; }
Gruß
mic





Zitieren

Lesezeichen