STM32F103RB Code wird nicht richtig interpretiert

Gast #3246681
Lesenswert?
• ▲
▼
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
Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.