Moin, habe einen Code geschrieben. Die init()-Routine wird sauber abgearbeitet, danach soll er in die Hauptschleife ( while(1) ) springen und dort die erste Funktion, bei mir eine Tastenabfrage ausführen! Macht er aber nicht! Die ersten beiden Funktionen werden ( im Einzelschritt getestet ) einfach mal ausgelassen und sofort zur Ausgabefunkton ( ausPWM() ) gesprungen. Codeausschnit der main() int main (void) { init(); // INITIALISIERUNGS AUFRUFEN // PROGRAMMABLAUF while(1) { vrFahrt(); // FAHRTRICHTUNG PRÜFEN aus = gleisSPAN(ausalt, balt, a, b); // BERECHNUNG DER AKTUELLEN GLEISSPANNUNG ausPWM(aus); // ÜBERGABE GLEISSPANNUNG AN PWM pauseZEIT(); // WARTEZEIT BIS ZUM NÄCHSTEN AUSLESEN } return 0; } Klicke ich nun im Einzelschritt weiter durch, arbeitet er irgendwann danach mal die funktionen vrFahrt() und gleisSPAN() ab!? Weiß jemand durch was so ein ungewollter Reihenfolgetausch ausgelöst werden kann? ( Hoffe ich hab das verständlich erklärt!? ) Der Compiler meldet übrigens keinen Fehler und gibt keine Warnung aus! Hoffe auf Hilfe, Grüsse
Hast du die Compiler Optimierung an? Das kann manchmal zu "seltsamen" Sprüngen im Debugger führen. Schau dir den erzeugten Assemblercode an, der spricht die Wahrheit! btw. Sind das alles globale Variablen? Wenn ja, warum behandelst du sie wie lokale Variablen? Gruß
BeamBot wrote:
> Der Compiler meldet übrigens keinen Fehler und gibt keine Warnung aus!
Schön für den unbekannten Compiler.
Und das unbekannte Target, unbekannten Debugger, unbekannte IDE usw.
usw. usw.
Ich sach mal ausm Bauch heraus: M103-Fuse
Wenn der Tip nicht paßt, liegts an Dir, weil Du 0 Informationen gibst.
Ist es denn wirklich so eine große Zumutung, ein Posting wenigstens
einmal zu lesen, ob damit ein anderer überhaupt was anfangen kann?
Peter
Danke Euch beiden. Werde mal sehen wie ich das hinbekomme. Beambot P. S. Habe die Variablen global, weil ich sie sonst in AVR Studio 4 nicht beobachten kann ...
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.