Forum: Mikrocontroller und Digitale Elektronik Atmega8 Simulation, Global Interrupt Enable Bit wird 0


von xoron (Gast)


Lesenswert?

Hallo zusammen,

bei der Simulation eines Assembler Programms für den Atmega8 mit 
AtmelStudio ist mir folgendes aufgefallen,

wenn ich mit dem sei Befehl im Status Register das Global Interrupt 
Enable Bit auf 1 setze, und danach in eine Endlos-Schleife gehe, wird 
dieses Bit nach einigen Takt-Zyklen wieder zu 0.

Warum verändert sich dieses Bit, obwohl kein Befehl ausgeführt wird?

Wie kann ich das Global Interrupt Enable Bit dauerhaft auf 1 setzen?

von Spess53 (Gast)


Lesenswert?

Hi

>Wie kann ich das Global Interrupt Enable Bit dauerhaft auf 1 setzen?

Ohne ein 'cli' bleibt das I-Flag gesetzt. Ausnahme: innerhalb von 
Interrupts.

Welchen Simulator bzw. AVR Studio benutzt du?

MfG Spess

von xoron (Gast)


Lesenswert?

Ich benutze AtmelStudio 6.0

von Spess53 (Gast)


Lesenswert?

Hi

Ich AVR Studio 4.19. Irgend wie habe ich das Gefühl, das der Simulator 
vom 6er Studio noch etwas buggy ist. Kann natürlich auch an deinem 
Programm liegen. Stell das mal als Anhang hier rein.

MfG Spess

von xoron (Gast)


Angehängte Dateien:

Lesenswert?

okay hier mein Testprogramm,^^

von Spess53 (Gast)


Lesenswert?

Hi

>okay hier mein Testprogramm,^^

Also wenn dabei das I-Flag zurückgesetzt wird, dann ist es definitiv ein 
Bug.

MfG Spess

von Stefan E. (sternst)


Lesenswert?

Debug -> Options and Settings -> Debugger
-> Mask interrupts while stepping

von xoron (Gast)


Lesenswert?

Das war das Problem. 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
Noch kein Account? Hier anmelden.