proceduren aufrufen im interrupt

#686007
Lesenswert?
• ▲
▼
> oder ist es auch üblich das in der int-rouine weitere proceduren
> aufgerufen werden?

Tunlichst nicht, denn man muss zusätzlich zum Zeitbedarf der Prozedur 
auch noch den (Zeit-) Aufwand für die Sicherung und Wiederherstellung 
der benutzten Register rechnen.

Am besten im Interrupt nur das zeitlich wirklich wichtige erledigen und 
für den Rest Flags setzen.
Die Flags dann in der Hauptschleife abfragen und die entsprechende 
Funktion bzw. Prozedur abarbeiten.
Gast #686009
Lesenswert?
• ▲
▼
>> oder ist es auch üblich das in der int-rouine weitere proceduren
>> aufgerufen werden?

>Tunlichst nicht,

Sooo pauschal würde ich das nicht sagen ;)
Es soll ja Programme geben die mit leerer main-loop
komplett in Interrupts laufen.

Es kommt halt auf das Programm an.
Gast #686013
Lesenswert?
• ▲
▼
Hi

Das kann man nicht so pauschal beantworten. Wenn du nur einen 
Timerinterrupt hast,der alle sec kommt und der Controller auch sonst 
geistig total unterfordert ist, kannst du kBytes in die IS-Routine 
packen. Je zeitkritischer deine Anwendung ist, desto kürzer sollten 
deine Routinen sein.
Oder nach dem Motto: So lang wie nötig und so kurz wie möglich.

MfG Spess
(Firma: TravelRec.) Persönliche Seite #686017
Lesenswert?
• ▲
▼
Es müssen halt - wie schon gesagt - alle Register gesichert und 
zurückgeschrieben werden, die in den Unterroutinen benutzt werden. Die 
ISR selbst muß alle Register sichern und rückschreiben, die sie selber 
benutzt, vor allem das Status-Register. Das wird gerne mal vergessen, es 
sei denn, der Compiler nimmt es einem ab. Unter ASM muß man selber ´ran.

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