21
OPTOIO-PCIe16
ULTRA
© 2017 by Messcomp Datentechnik GmbH
DV01
21
OPTOIO-PCIe16
ULTRA
© 2017 by Messcomp Datentechnik GmbH
EV04
21
21
wasco
®
wasco
®
Attention:
If in that time further interrupts were triggered (e.g. Timer), these must
be deleted in their respective registers, too. Only after all of the activated
interrupt registers have been reset to 0 again, another interrupt can be
triggered.
5.7.2 Port Changes
If the optocoupler inputs often need to be queried to detect changes,
another interrupt function can be used to relieve the PC. For this the
WASCO-PCIe8117 provides the possibiltiy to trigger an interrupt in the
event of a change at the inputs.
To enable this interrupt function on one hand the register OPTOINICe
has to be set to 0x00000001. On the other hand, the user can determine
via the 32-bit register OPTOINICCe, which one of the inputs should be
considered for the detection. In the event of a change at the inputs, the
corresponding bit is set in register OPTOINIC. To re-enable the interrupt
after having been triggered, the corresponding bit in register OPTOINICr
has to be set.
After the reset, the reset bit will be reset automatically.
1. To determine the interrupt source, the edge memory register OPTOINIF
has to be read out (return value here 0x00000002(hex). If other sources
are available, such as timer etc., please check in INTCON register
whether or not the interrupt received from the PC is derived from the
OPTOINIF register.
2. Once the source is identified, the source bit must be deleted.
For this purpose, in our case write 0x00000002(hex) to the register
OPTOINIFr.
Interrupt Service Routine
Achtung:
Sollten in der Zeit noch weitere Interrupts geschehen sein (z.B. Timer),
müssen diese in ihren jeweiligen Registern ebenfalls gelöscht werden. Erst
nachdem alle aktivierten Interruptregister wieder auf 0 gesetzt wurden,
kann ein weiterer Interrupt ausgelöst werden.
5.7.2 Portänderungen
Müssen die Optokopplereingänge oft abgefragt werden, um Änderungen
zu erkennen, so kann eine weitere Interruptfunktion verwendet werden,
um den PC zu entlasten. So bietet die WSACO-PCIe8117 die Möglichkeit
an, bei einer Änderung an den Eingängen einen Interrupt auszulösen.
Zur Freischaltung dieser Interruptfunktion muss zum einen das Register
OPTOINICe auf 0x00000001 gesetzt werden. Zum anderen kann der
Anwender durch das 32bit Register OPTOINICCe bestimmen, welche
Eingänge bei der Erkennung berücksichtigt werden sollen. Findet eine
Änderung der Eingänge statt, so wird im Register OPTOINIC das entspre-
chende Bit gesetzt. Um nach einem Auslösen des Interrupts diesen wieder
freizuschalten, muss das entsprechende Bit im Register OPTOINICr gesetzt
werden. Nach dem Reset wird das Resetbit von selbst zurückgesetzt.
1. Um die Quelle des Interrupts zu ermitteln, muss das Flanken-
speicherregister OPTOINIF ausgelesen werden (Rückgabewert hier
0x00000002(hex)). Sollten noch andere Quellen wie Timer etc. möglich
sein, muss im INTCON-Register überprüft werden, ob der vom PC
empfangene Interrupt vom OPTOINIF-Register stammt.
2. Ist die Quelle identifiziert, muss das Quellenbit gelöscht werden.
Hierfür schreiben Sie in unserem Fall den Wert 0x00000002(hex) in
das Register OPTOINIFr.
Interrupt-Service-Routine