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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren