Forum: Mikrocontroller und Digitale Elektronik Komisches Verhalten (7 Zeilen Code inklusive) :-)


von Kurt (Gast)


Angehängte Dateien:

Lesenswert?

Folgender Codeabschnitt befindet sich in einer Funktion, die mit 
höchster Priorität zyklisch aufgerufen wird, also nicht unterbrochen 
wird:

http://www.abload.de/img/asmsir.jpg (oder siehe Dateianhang)

Wenn ich das jetzt so debugge mit den beiden eingestellten Breakpoints, 
wird der zweite Breakpoint nicht angesprungen. Lösche ich den ersten 
Breakpoint, wird der zweite angesprungen. Woran könnte das denn liegen? 
Stehe wahrscheinlich grad auf dem Schlauch

Danke für eure Tipps

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Vermutung:

Durch deinen 1. Breakpoint verlangsamst du den Programmablauf enorm. 
Dadurch bekommt das Programm nicht mehr mit, dass die volatile Variable 
rx_success_pt2 gelegentlich FALSE ist. Bis der Debugger sich auf den 1. 
Breakpoint eingeschossen hat, ist rx_success_pt2 schon wieder ungleich 
FALSE.

von Kurt (Gast)


Lesenswert?

Zu 99,9% der Zeit ist rx_success_pt2 allerdings TRUE, und trotzdem wird 
in die if-Bedingung verzweigt. Verändert wird die Variable viele Zeilen 
später in derselben Funktion. Hmmm...

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Kurt wrote:
> Verändert wird die Variable viele Zeilen
> später in derselben Funktion. Hmmm...

Ist sie denn vorher korrekt initialisiert?

von Kurt (Gast)


Lesenswert?

static und static volatile wurden ausprobiert

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
Noch kein Account? Hier anmelden.