[AVR ]Wie komplett in Assembler geschreibener Interrupt im C-Projetk

Gast #1988955
Lesenswert?

Wenn man in einem C-Projekt einen Teil in Assembler schreiben will dann 
nimmt man normalerweise asm (volatile) ...; .
Aber: Wenn ich jetz eine ultraschnelle Intrrruptroutine brauch ist das 
nicht zu gebrauchen, der Compiler pusht nämlich erstmal die Register und 
führt dann erst den Code aus -> Zeitverlust...
Wie sag ich jetzt dem Compiler, dass er die Finger von dem Interrupt 
lassen soll?
Gast #1988957
Lesenswert?

Max schrieb:
> Aber: Wenn ich jetz eine ultraschnelle Intrrruptroutine brauch ist das

Definiere ultraschnell.
Für die meisten Sachen reicht die C-Implementation vollkommen aus, für 
die anderen Fälle kann man sich überlegen, das Programm komplett in 
Assembler zu schreiben.
:-)
Persönliche Seite #1988981
Lesenswert?

Max schrieb:

> der Compiler pusht nämlich erstmal die Register und
> führt dann erst den Code aus -> Zeitverlust...

Warum macht der das? I.d.R. damit dein Nicht-Interrupt-Programmteil 
fehlerfrei läuft.

Wenn du das nicht brauchst oder meinst es nicht zu brauchen, kannst du 
ihm sagen, dass du keinen Prolog/Epilog möchtest. Befasse dich dann mit 
dem __attribute__((naked)) im Funktionsheader.

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