Hallo, Vorgeschichte: Das Programm läuft normal an und kann während der Laufzeit durch den Anwender in verschiedenen Modi betrieben werden. Diese erfordern z.T. Reinitialisierungen des AVRs, die am vor der Hauptschleife im main () stehen. Am Beginn der main habe ich mir ein Label definiert. Erkennt eine Funktion in einer anderen Datei einen Moduswechsel soll dorthin gesprungen werden. Problem: main.c:10: warning: label `restart' defined but not used communication.c:209: error: label `restart' used but not defined Wie macht man ein Label global bekannt? Danke, Alex
OK, also sowas scheint prinzipbedingt nicht zu funktionieren, Sprünge sind nur lokal in Funktionen erlaubt. Eigentlich auch logisch, wenn man die Arbeitsweise eines Compilers berücksichtigt :)
Könntest du nicht um die Hauptschleife herum noch eine Schleife bauen? main() { while (1) { init(modus); // hier initialisierst du while (1) // Hauptschleife { ... if (moduswechsel) continue; } } } // Ende main Mit dem continue springst du aus der inneren Schleife raus.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.