8051: Ext. Interrupt

T

Tilo Gockel

Guest
Karlsruhe, den 6. September 2004
-
Liebe Kollegen,
zu den zwei externen Interrupts des 8051 habe ich widersprüchliche Angaben
gefunden. Mal wird geschrieben, dass es nur zwei Möglichkeiten gibt:

1. negativ (fallend) Taktflanken-getriggert
2. negativ zustandsgetriggert

mal ist aber auch die Rede vom Auslösen bei beiden Flanken.

Und genau das würde ich brauchen...

Weiß da jemand Rat?

Danke und Gruß
Tilo

-
gockel at ira punkt uka punkt de
 
Tilo Gockel schrieb:

zu den zwei externen Interrupts des 8051 habe ich widersprüchliche Angaben
gefunden. Mal wird geschrieben, dass es nur zwei Möglichkeiten gibt:

1. negativ (fallend) Taktflanken-getriggert
2. negativ zustandsgetriggert

mal ist aber auch die Rede vom Auslösen bei beiden Flanken.

Und genau das würde ich brauchen...
Trick [tm]: Den Interrupt flankengetriggert programmieren (damit löst
der bei der fallenden Flanke aus). Dann den zu dem entsprechenden Pin
gehörenden Timer als "Gated Timer" programmieren und den Inhalt auf
-1 (FFFF) setzen. Sobald Dein Signal wieder auf 1 geht, läuft einen
CPU-Zyklus später der Timer über und löst einen Interrupt aus.

Natürlich (ver-)brauchst Du hierbei einen der Timer, und mußt jeweils
in der Flanken-ISR den Timer wieder auf die nächste steigende Flanke
vorbereiten (auf -1 laden und starten) und in der Timer-ISR den Timer
wieder anhalten. Außerdem kommt der Interrupt auf die steigende Flanke
dann um einen Zyklus verspätet.

Ansonsten brauchst Du externe Hardware (Inverter) und beide INT-Eingänge.

--
Dipl.-Ing. Tilmann Reh
Autometer GmbH Siegen - Elektronik nach Maß.
http://www.autometer.de
 
nicht schlecht!

Leider für mich nicht praktikabel, da ich ja gerade die externen Ints als
Zähler externer Ereignisse _ohne_ Timer-Int (keiner mehr frei) missbrauchen
will-.... :-(

Trotzdem danke,

Gruß

Tilo





"Tilmann Reh" <tilmannreh@despammed.com> schrieb im Newsbeitrag
news:chh725$j4t$1@online.de...
Tilo Gockel schrieb:

zu den zwei externen Interrupts des 8051 habe ich widersprüchliche
Angaben
gefunden. Mal wird geschrieben, dass es nur zwei Möglichkeiten gibt:

1. negativ (fallend) Taktflanken-getriggert
2. negativ zustandsgetriggert

mal ist aber auch die Rede vom Auslösen bei beiden Flanken.

Und genau das würde ich brauchen...

Trick [tm]: Den Interrupt flankengetriggert programmieren (damit löst
der bei der fallenden Flanke aus). Dann den zu dem entsprechenden Pin
gehörenden Timer als "Gated Timer" programmieren und den Inhalt auf
-1 (FFFF) setzen. Sobald Dein Signal wieder auf 1 geht, läuft einen
CPU-Zyklus später der Timer über und löst einen Interrupt aus.

Natürlich (ver-)brauchst Du hierbei einen der Timer, und mußt jeweils
in der Flanken-ISR den Timer wieder auf die nächste steigende Flanke
vorbereiten (auf -1 laden und starten) und in der Timer-ISR den Timer
wieder anhalten. Außerdem kommt der Interrupt auf die steigende Flanke
dann um einen Zyklus verspätet.

Ansonsten brauchst Du externe Hardware (Inverter) und beide INT-Eingänge.

--
Dipl.-Ing. Tilmann Reh
Autometer GmbH Siegen - Elektronik nach Maß.
http://www.autometer.de
 
Tilo Gockel schrieb:

nicht schlecht!

Leider für mich nicht praktikabel, da ich ja gerade die externen Ints als
Zähler externer Ereignisse _ohne_ Timer-Int (keiner mehr frei) missbrauchen
will-.... :-(
Falls die Ereignisse (Flanken) nur relativ selten kommen und Du einen
schnellen periodischen Interrupt laufen hast (oder laufen lassen kannst),
wäre noch eine Auswertung des Signals am Port vollständig mit Software
denkbar (Vergleich gegen bisherigen Zustand; bei Änderung entsprechend
reagieren). Ist natürlich alles eine Frage der Randbedingungen...

Bitte lies auch mal http://einklich.net/usenet/zitier.htm.

--
Dipl.-Ing. Tilmann Reh
Autometer GmbH Siegen - Elektronik nach Maß.
http://www.autometer.de
 
In article <chh54h$ql9$1@news2.rz.uni-karlsruhe.de>,
"Tilo Gockel" <gockel@ira.uka.de> writes:
Karlsruhe, den 6. September 2004
-
Liebe Kollegen,
zu den zwei externen Interrupts des 8051 habe ich widersprüchliche Angaben
gefunden. Mal wird geschrieben, dass es nur zwei Möglichkeiten gibt:

1. negativ (fallend) Taktflanken-getriggert
2. negativ zustandsgetriggert

mal ist aber auch die Rede vom Auslösen bei beiden Flanken.

Und genau das würde ich brauchen...

Zum zählen würd ich auf alle Fälle Flanken verwenden.

Das mit den pos. und negativen flanken kann INT2 der aber nur in manchen
besseren 8051 versionen vorhanden ist.

--
MFG Gernot
 
Tilo Gockel schrieb:

mal ist aber auch die Rede vom Auslösen bei beiden Flanken.
Soweit ich weiss, kann man beim 8051 die Konfiguration laufend ändern, bin mir
aber nicht ganz sicher.
So könntest Du nach einer pos. Flanke den Int auf eine negative
umprogrammieren, sicherheitshalber nochmal den Pegel vor Verlassen der
Int-Routine abfragen, um nichts verpasst zu haben.

Gruss Udo
 
Udo Piechottka schrieb:

mal ist aber auch die Rede vom Auslösen bei beiden Flanken.

Soweit ich weiss, kann man beim 8051 die Konfiguration laufend ändern,
Nein. Der 8051 kann nur "fallende Flanke" oder "low-Pegel".

--
Dipl.-Ing. Tilmann Reh
Autometer GmbH Siegen - Elektronik nach Maß.
http://www.autometer.de
 

Welcome to EDABoard.com

Sponsor

Back
Top