Forum: Mikrocontroller und Digitale Elektronik Interrupt und zeitlicher Verlauf


von Boris (Gast)


Angehängte Dateien:

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?

von Stefan (Gast)


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.

von Ralf A. (warpnine)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.