www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupt latency


Autor: Patrick B. (p51d)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo miteinander

Ich habe wiedereinmal eine Frage:
Wie gross ist die Zeit, die ein Prozessor (PIC oder AVR) in etwa 
benötigt, bis die ISR ausgefürht wird, respektive wie lange braucht er 
dann wieder um zurück zu springen?

Ein Interrupt kann ja nicht sofort ausgefürht werden, da die 
entsprechenden Daten (Variablen, Werte...) zwischengespeichert werden 
müssen, und später wieder aufgerufen werden.

Wie schnell kann man einen Timer-Interrupt (in abhängigkeit zum Quarz) 
maximal aufrufen, damit noch etwas anderes bearbeitet werden kann?

Besten Dank für die Antworten
MFG

Autor: Interrupt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Datenblatt verrät so einiges:

Wenn der Interrupt erkannt wurde:
-*wird der gerade in Arbeit befindliche Befehl "fertig bearbeitet"
-*dann Sprung zur Interrupt-Vektor-Tabelle,
-*dann Sprung zur Interrupt-Service-Routine
-*dann müssen die Register gerettet werden
      (Abzählen wie viele das sind)

-dann die Interrupt-Service-Routine selber

-*gerettete Register zurück speichern

-*Abschließender RETI

-* ist der sogenannte Overhead, wie lange der Dauert
   findet sich im Datenblatt, (Anzahl der Zyklen! pro Befehl)
Bei bekannter Frequenz läßt sich somit die Zeit berechenen!


Ein gutes Neues!

Autor: Quarz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Patrick B. schrieb:
> Wie schnell kann man einen Timer-Interrupt (in abhängigkeit zum Quarz)
> maximal aufrufen, damit noch etwas anderes bearbeitet werden kann?

Beim AVR: Beliebig schnell. Da ist sichergestellt, dass zwischen zwei 
ISR-Aufrufen auch immer mindestens ein Nicht-ISR-Befehl abgearbeitet 
wird.
Nicht sichergestellt ist natürlich, dass dir keine Interrupts verloren 
gehen, wenn sie zu schnell kommen.

Autor: Anja (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also bei mir sind so typische Interrupt-Durchlaufzeiten beim
AVR (ATMEGA32) ca 60-70 Takte (4-5us bei 16 MHz)
z.B. für ADC-Messung und Abspeicherung in einen Ring-Puffer

und beim

PIC16 ca 25-40 Takte (5-8us) bei 20 MHz)
Ausgabe 3 Soft-Pwms mit 8 bzw. 12 Bits.

Gruß Anja

Autor: smoerre (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Interrupt-Latenzzeit bei einem Timerinterrupt scheint bei AVR und 
Pics identisch zu sein, wenn man der Quelle glauben darf:
http://www.electricstuff.co.uk/picvsavr.html

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Quelle ist recht zweifelhaft, da scheint vieles falsch bzw. überholt 
zu sein, aber naja.

Beim AVR ist das eigentlich recht simpel:
Der Eintritt kostet laut Datenblatt 7..9 Takte (8 und 9, wenn die gerade 
ausgeführte Instruktion 2 oder 3 Takte braucht), der Rücksprung kostet 
4.

Alles weitere -- etwa das Sichern von Registern -- ist Compiler-Voodoo 
und auf Ebene der Hochsprache in aller Regel nicht vorhersehbar.

Autor: Patrick B. (p51d)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hier wird für PIC's eine Zeit von 3-4 Cycles angegeben.
http://www.chatzones.co.uk/discus/messages/5557/5869.html

Dies scheint mir nach der Auflistung von oben, was alles abgearbeitet 
wird, doch sehr wenig.

Also einen Timer mit ~40-70kHz sollte machbar sein, wenn der Interrupt 
selber "nur" etwa die halbe Periode benötigt?

MFG

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.