Forum: Mikrocontroller und Digitale Elektronik 8051 Interrupt


von Reinhard S. (rezz)


Lesenswert?

Ich hab hier etwas Assemblercode (nicht von mir) bei einem AT89xx52, wo 
ich grad Verständnisprobleme habe.

Ich hab einen Interrupt, wenn dieser auslöst wird
erstmal der Interrupt gesperrt, damit keine weiteren ausgelöst werden.
Dann kommt 1 Sprung zum Code und in diesem steht ziemlich am Anfang ein 
RETI.

Also müsste doch der Interrupt jetzt verlassen und "normal" 
weitergearbeitet werden?

Komisch ist nur das nach dem RETI noch Code steht, der auch ausgeführt 
wird.

von Schwerer Löter (Gast)


Lesenswert?

>Komisch ist nur das nach dem RETI noch Code steht, der auch ausgeführt
>wird.

Vieleicht kannst du mal den Code posten.
Ich vermute mal:
1. Möglichkeit: es gibt einen Sprung der hinter RETI springt
2. Möglichkeit: der Code hinter RETI ist eine andere Interruproutine

hinter RETI sollte aber ein Label stehen.

3. Möglichkeit: Der Code wird niemals ausgeführt und ist in Wahrheit 
eine versteckte Tabelle auf die mit MOVC A,@A+DPTR zugegriffen wird.

von Steffen Hausinger (Gast)


Lesenswert?

Kommt ein Sprung oder ein Call zum "RETI"? Falls letzteres, dient dieser 
Aufruf dazu, Deine Interruptroutine "formal" zu beenden.

Grüße
 Steffen

von Reinhard S. (rezz)


Lesenswert?

Steffen Hausinger schrieb:
> Kommt ein Sprung oder ein Call zum "RETI"? Falls letzteres, dient dieser
> Aufruf dazu, Deine Interruptroutine "formal" zu beenden.

Ich komm per Sprung zu einem Codebrocken, wo ein Macro eingefügt ist, 
welches einen RETI enthält.

von Peter D. (peda)


Lesenswert?

Reinhard S. schrieb:
> Ich komm per Sprung zu einem Codebrocken, wo ein Macro eingefügt ist,
> welches einen RETI enthält.

Ne ne ne.

Du meinst also wirklich, es ist einfacher, einen Quelltext zu 
beschreiben, als in ganz profan als Datei anzuhängen?

So wird dat nix.


Peter

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.