Achso. Gut, jetzt kompiliert er schonmal durch. Nach dem ersten Hindernis will er aber nicht mehr weiterfahren, er kommt anscheinend aus der while-if-Schleife nicht mehr raus. Meine Vermutung war, dass durch Compiler-Optimierung die Schleife in ein while(1); "umgewandelt" wird, da das abgebrochen ja normalerweise währenddessen nicht verändert werden kann, also habe ich es mit int volatile abgebrochen probiert, aber das Ergebnis ist das gleiche. Ich verzweifel hier langsam![]()
So sieht meine main.c jetzt aus:
Code:#include "asuro.h" #include "funktionen.h" // Standardmäßig auf 1, da am Anfang von 0 beschleunigt werden soll volatile int abgebrochen = 1; int main(void) { // Initialisierung Init(); sei(); StartSwitch(); // hier kommt der Hauptteil des Programms StatusLED(RED); while (1) { /* ** Bei einer Kollision soll wieder von 0 beschleunigt werden und nicht ** beim vorherigen Beschleunigungsvorgang weiter gemacht werden */ if (abgebrochen) { abgebrochen = 0; Beschleunige(120, 150, 3); } } return 0; }







Zitieren

Lesezeichen