mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik proceduren aufrufen im interrupt


Autor: roboterheld (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
soll man in der interrupt-routine zb int0 zum schnellen ergebnis kommen 
und dann sofort raus? oder ist es auch üblich das in der int-rouine 
weitere proceduren aufgerufen werden?

Autor: Dieter Werner (dds5)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hast du doch schonmal gefragt und schonmal eine Antwort bekommen. 
Bist du so schusselig?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.