[8051] zwei Interrupts überschneiden sich

Gast #794750
Lesenswert?

Hi Leute,

ich sitz hier schon seit ein paar Stunden herum und wälze Datenblätter 
um die praktische Anwendung von Interrupts zu kapieren.
Meine Aufgabenstellung:

Ich hab hier einen Temperaturfühler,der auf einem interruptfähigen I/O 
Pin des 80C552 angeschlossen wird. Wenn der Temperaturfühler eine 
negative Flanke liefert,dann soll ein Interrupt ausgelöst werden. Beim 
Interrupt springe ich dann auf die Interrupt Vektoradresse und dort soll 
dann eine Messung durchgeführt werden(also wie lange die Portleitung auf 
Null ist). Aus dieser Zeit kann ich dann auf den jeweiligen 
Temperaturwert zurückrechnen.
Desweiteren soll aber auch über einen Timer eine Uhr programmiert 
werden,die immer im Hintergrund läuft.

Mein Problem:

Wenn ich zum Beispiel für die Realisierung der Uhr den Timer 1 im 16 Bit 
Modus betreibe,dann zählt ja der von 0 - 65536 und dann wird ein 
Interrupt ausgeführt,oder?

Desweiteren hab ich auch noch einen Temperaturfühler,mit dem ich die 
aktuelle Umgebungstemperatur messen möchte. Je nach Temperatur dauert 
die Messung zwischen 50ms und 380ms.
Das heißt jedes Mal wenn ich mit der Messung der Temperatur anfange,dann 
wird durch den höherwertigen Interrupt der Uhr(die Uhr sollte ja auch 
nicht falsch gehen) die aktuelle Messung unterbrochen und ich bekäme nie 
einen Messwert...

Sehe ich das richtig,oder bin ich da auf einem Holzweg?
Mir raucht mittlerweile schon der Kopf.

Danke!
#794755
Lesenswert?

Bernhard wrote:

> Das heißt jedes Mal wenn ich mit der Messung der Temperatur anfange,dann
> wird durch den höherwertigen Interrupt der Uhr(die Uhr sollte ja auch
> nicht falsch gehen) die aktuelle Messung unterbrochen und ich bekäme nie
> einen Messwert...

Unterbrechen und Abbrechen sind 2 völlig verschiedene Dinge.

Ein Interrupt unterbricht, macht sein Ding und dann gehts weiter.

Ist der Meßinterrupt wichtiger, gibst Du ihm eben die höhere Priorität, 
dann kann er den Uhreninterrupt unterbrechen.

Und dem Uhreninterrupt ists wurscht, wenn er mal 100µs später behandelt 
wird, der Timer läuft ja weiter.


Peter
Gast #794769
Lesenswert?

Hi,

also wenn da so ist,dann sollte die Aufgabenstellung eigentlich mit ein 
bisschen Denkarbeit mehr oder weniger zu lösen sein.

Ich danke euch!

Endlich kann ich mit dem Projekt anfangen :)

Bernhard

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