Ich habe in Atmel Studio 6 (Version gemäss Screenshot) beim Simulieren eines Projekts für den ATMega328P das seltsame Verhalten, dass bei StepOver (F10) nicht dasselbe Verhalten resultiert wie bei Continue (F5) mit gesetzten Breakpoints. Das Projekt ist als .zip File angehängt, ebenso separat dazu noch das .c File. Gewünschter Ablauf: - 1ms Zeitbasis mit Timer0 - in main() Pulsform generieren auf PORTD2 Out -> wirkt auf INT0 Eingang - Timer2 als Zeitbasis für die Messung der Pulsbreite - INT0 aktiviert, any change, Messung der Pulsbreite (Mit einem einzelnen Input könnte auch das Capture Feature von Timer1 verwendet werden, im Endausbau würde das aber nicht mehr klappen. Deshalb ist der Test mit Timer1 in dieser Form ausgefallen.) Wenn ich nun die Simulation mit gesetzten Breakpoints anwerfe, dann funktioniert alles wunderbar, auf PORTD2 wird ein Puls von 2 Heartbeats ausgegeben mit 8 Heartbeats Pause. Soweit so gut. Wenn ich nun Einzelschritte mit StepOver (F10) anschaue, dann kommt es vor, dass das GlobalInterrupt Flag in main() spontan zurückgesetzt wird und der Ablauf dann natürlich unterbrochen wird. Einige solche Fälle habe ich auch als Screenshot angehängt, jeweils unmittelbar nach dem Clear des Flags (wird noch rot dargestellt). Die Anzahl F10 drücken bis zum "Fehler" ist unterschiedlich, ebenso die Position des "Fehlers" im Disassembly. Dann werde ich wohl nur noch mit Breakpoints und Continue simulieren und stets das GlobalInterrupt Flag im Auge behalten müssen. Hat sowas schon mal wer beobachtet? Kann mal jemand versuchen, dieses Verhalten zu reproduzieren? Gruss!
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.