Interrupts in C

Gast #65772
Lesenswert?
• ▲
▼
Hallo,

ich bin nach einigen Jahren Hobby-Assembler-Programmierung jetzt auf C
umgestiegen weil es hier und da doch übersichtlicher ist. Ich verwende
den Codevision Compiler. Nun habe ich jedoch eine Frage zu den
Interrupts:
Default-Einstellung des Compilers ist, alle Register automatisch zu
sichern. Wenn ich jetzt aber in einer Interruptroutine z.B. einen Wert
vom UART einlese und ihn dann einer Variablen übergebe, so wird diese
dann ja auch wieder automatisch "restauriert" wenn ich die
Interruptroutine verlasse, falls diese variable einem register
zugeordnet war. Der übergebene Wert ist also futsch! Wie umgehe ich das
?? Die Variable im SRAM anlegen? oder wird auch dort restauriert? was
macht der Compiler denn eigentlich genau?? aus der recht knappen
Online-Hilfe werde ich nicht wirklich schlau...

Es würde mich freuen wenn jemand eine Antwort weis!

Vielen dank schonmal,

Karl-Heinz.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren