Interrupt und zeitlicher Verlauf

Gast #341512
Lesenswert?
• ▲
▼
Habe 4 theoriestische Probleme bei einem MC 8051 oder vergleichbar:

1. Int0 und Int2 werden gleichzeitig durchgeschaltet (siehe Anhang):
- Was passiert wenn Int0 eine niedere Priorität wie Int2 besitzt?
- Was passiert wenn beide gleiche Priorität besitzen?
- Hängt das irgendwie auch von der Polling Sequence ab?

2. Int0 (mit einer niederen Priorität) ist schon in Bearbeitung und
Int2 (mit einer hohen Priorität) löst aus. Was passiert?

3. Welche Funktion hat das IE0 im TCON? Muss dies gesetzt (aktiviert)
werden wenn man den Int0 auslösen will oder mach das die Hardware
automatisch?

4. Wenn man grob die Programmrechenzeit abschätzen will, kann man dann
davon augehen, dass ein Assemblerbefehl 1us dauer?
Angehängte Dateien:
Gast #341513
Lesenswert?
• ▲
▼
> 4. Wenn man grob die Programmrechenzeit abschätzen will, kann man dann
davon augehen, dass ein Assemblerbefehl 1us dauert?

Wenn ein (der spezielle) Assemblerbefehl einen Takt zur Abarbeitung
braucht und wenn der Prozessor mit einer Taktrate von genau 1 MHz (10^6
Hz) betrieben wird, ja, dann dauert dieser Befehl 1/10^6 = 10^-6s = 1
µs.
#341514
Lesenswert?
• ▲
▼
> 1. Int0 und Int2 werden gleichzeitig durchgeschaltet (siehe Anhang):
> - Was passiert wenn Int0 eine niedere Priorität wie Int2 besitzt?

Wenn INT0 bearbeitet wird, und währenddessen INT2 aktiv wird,
unterbricht INT2 den INT0. Wenn INT2 fertig ist, wird mit der
Bearbeitung von INT0 fortgefahren.

> - Was passiert wenn beide gleiche Priorität besitzen?
> - Hängt das irgendwie auch von der Polling Sequence ab?

Haben beide die gleiche Prio, entscheidet die Polling-Sequenz, wer
zuerst drankommt, nämlich der, der zuerst gepollt wird...

> 2. Int0 (mit einer niederen Priorität) ist schon in Bearbeitung und
> Int2 (mit einer hohen Priorität) löst aus. Was passiert?

Antwort siehe oben.

> 3. Welche Funktion hat das IE0 im TCON? Muss dies gesetzt
> (aktiviert) werden wenn man den Int0 auslösen will oder mach das die
> Hardware automatisch?

Von welchem Controller reden wir? Aus der Bezeichnung IE0 kann ich die
Bedeutung nicht einwandfrei erkennen. Ich kann jetzt nur vermuten, dass
IE0 "Enable External Interrupt 0" bedeutet. In dem Fall bedeutet das
Setzen, dass automatisch ein Interrupt ausgelöst wird, wenn am Portpin
die entsprechende Bedingung erfüllt ist.
Alternativ kann man durch Setzen des zum Interrupt gehörenden
Interrupt-Flags den Interrupt per Software auslösen.

HTH

Ralf

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.