56
OPTOIO-PCIe16
ULTRA
© 2017 by Messcomp Datentechnik GmbH
DV01
56
OPTOIO-PCIe16
ULTRA
© 2017 by Messcomp Datentechnik GmbH
EV04
56
56
wasco
®
wasco
®
As several sources of an optocoupler input edge interrupt are to consider,
the source lines to the register INTCON usually are conditioned. This
means, an additional 32 bit register can be applied to the respective bit
of the register INTCON. In case of an edge detection of the optocoupler
inputs, this is the register OPTOINF. In this register every bit represents
one optocoupler input (see register description). Every single input can
be armed individually to be an interrupt source (OPTOINFe) and enabled
again after an interrupt is triggered and serviced (OPTOINFr).
The process completed, the respective bit in the register INTCON is set
to 0 automatically.
Application
1. How to configure
a) Check whether or not all interrupt sources are cleared (INTCON = 0)
b) Enable single interrupt sources (see documentations of the respective
peripherals)
c) Enable interrupt function (INTe = 1)
2. Interrupt routine
a) Identify interrupt source peripherals by reading INTCON and correspon-
ding peripheral register if required
b) Clear interrupt
c) Check if there are any outstanding interrupts (INTCON = 0?)
d) if c) is the case, clear all other interrupts as well
e) Enable again the interrupt function (INTr = 1)
Da z.B. bei einem Optokopplereingangsflankeninterrupt mehrere Quellen in
Frage kommen, werden die Quellleitungen zum Register INTCON meist auf-
bereitet. Dies bedeutet, dass ein weiteres 32-Bit-Register an dem jeweiligen
Bit des INTCON-Registers anliegen kann. Im Falle der Flankenerkennung
der Optokopplereingänge ist dies das Register OPTOINF. In dem Register
stellt jedes Bit einen Optokopplereingang dar (siehe Registerbeschreibung).
Die einzelnen Eingänge können einzeln als Interruptquelle freigegeben
werden (OPTOINFe) und nach einem ausgelösten und bearbeiteten
Interrupt wieder freigegeben werden (OPTOINFr).
Ist dies geschehen, geht das jeweilige Bit im Register INTCON automa-
tisch auf 0.
Anwendung
1. Konfiguration
a) Überprüfen, ob alle Interruptquellen gelöscht sind (INTCON = 0)
b) Einzelne Interruptquellen freigeben (siehe Dokumentation der entspre-
chenden Peripherie)
c) Interruptfunktion freischalten (INTe = 1)
2. Interruptroutine
a) Interruptquellenperipherie identifizieren durch das Lesen von INTCON
und falls nötig entsprechender Peripherieregister
b) Interrupt löschen
c) Überprüfen, ob noch weitere Interrupts anliegen (INTCON = 0?)
d) falls c) zutrifft, alle anderen Interrupts ebenfalls löschen
e) Interruptfunktion wieder freigeben (INTr = 1)