Hallo, ich möchte einen Impuls erzeugen und bekomme einen komischen Zustand bei der While-Schleife. in main.cpp wird durch den Timerinterrupt die Methode setStop in transmitter.cpp aufgerufen: main.cpp: extern void setStop(void); extern void impulsCallback(ITimer &) { setStop(); } in transmitter.cpp wird dann die variable stop gestetzt. transmitter.cpp: void setStop(void) { stop = true; } void performPosImpuls(void) { GPIO_WriteBit(GPIOB, GPIO_Pin_10, Bit_SET); GPIO_WriteBit(GPIOB, GPIO_Pin_11, Bit_RESET); timer->start(1000, false); while(!stop); GPIO_WriteBit(GPIOB, GPIO_Pin_10, Bit_RESET); GPIO_WriteBit(GPIOB, GPIO_Pin_11, Bit_RESET); stop = false; } Nun ist es so, dass der Controller bei der while Schleife trotz erfüllter Bedingung nicht weitergeht. Ein Ausschnitt des Debuggers ist angehängt. Vielleicht kennt jemand das Problem und kann mir weiterhelfen. Vielen Dank im voraus
In solchen Fällen kann es hilfreich sein auf disassembly-Ebene zu debuggen. Da siehst Du dann direkt was in welche Register geladen wird und was mit wem verglichen wird.
Danke, hat sich erledigt. Stop wurde nach dem ersten Lesen nicht erneut gelesen, da sie nicht als volatile declariert war. Danke
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.