Der Unterschied zwischen RET und RETI ist nur, das letzerer auch das Glob-Int-Enable Flag wieder setzt. Da stürzt nix ab, wie auch.
Wenn das berücksichtigt wird, und das wäre es ja auch in diesem Fall, kann dir das nur recht sein.
EDIT: Vielleicht meinst du die alten Intels. die haben tatsächlich das statusregisrter zusätzlich zurückgeladen bei IRET, glaub ich mich zu erinnern
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
In assembler get das in eine andere ISR zu springen. Man muß aber nur aufpassen, das die Register auf die gleiche Wiese wieder hergestellt werden. Wegen der Register auf dem Stack geht ein gosub nicht, höchstens ein goto. Soweit ich weiss werden von Bascom immer alle Register gerettet da gibts also nur eine version. Mit GCC hätte man da Probleme.
Gerade wenn es zeitkritisch ist, ist der umweg über den extra Interrupt unpraktisch, denn in Basic braucht es recht lange bis alle Register rerettet und wieder hergestellt sind. Oft dauert das länger als die eigentliche ISR. Da wird es besser sein den Code einfach 2 mal da zu haben, wenn der Flash nicht zu knapp ist.
Lesezeichen