20
OPTOIO-PCIe16
ULTRA
© 2017 by Messcomp Datentechnik GmbH
DV01
20
OPTOIO-PCIe16
ULTRA
© 2017 by Messcomp Datentechnik GmbH
EV04
20
20
wasco
®
wasco
®
Application example:
You want an edge detection with interrupt triggering on channel IN01.
The following example lists each step of how to perform the configuration
and what needs to be done in the interrupt service routine to re-enable
the interrupt.
Please note that in this example the interrupt configuration of the driver is
not indicated. For the discription of this please refer to the driver.
Additional, more program examples are made available for download on
our homepage.
Configuration:
1. Activation of the card‘s interrupt function (see chapter Interrupt
Controller)
2. Enable the required interrupt
Before enabling an edge detection interrupt, please check whether or not
the edge memory register OPTOINIF is reset completely. Otherwise, an
interrupt might be triggered immediately after enabling the interrupt. If not
all of the bits are reset in register OPTOINIF, value 0 is writtenxffffffff(hex)
into the register OPTOINIFr.
See the table how to set bit 1 in register OPTOINIFe to activate an edge
detection interrupt on channel IN01. This way, with the help of the PCIe
write command, the value 0x00000002(hex) resp. 2(dec) is written to
this register.
Anwendungsbeispiel:
Gewünscht wird eine Flankenerkennung mit Interruptauslösung am Kanal
IN01. Im folgenden Beispiel werden die einzelnen Schritte aufgezählt, wie
die Konfiguration durchgeführt werden muss und was in der Interrupt-
Service-Routine zur erneuten Freigabe des Interrupts unternommen
werden muss.
Bitte beachten Sie, dass in diesem Beispiel nicht die Interruptkonfiguration
des Treibers aufgelistet ist. Eine Beschreibung hierzu liegt dem Treiber
bei.
Neben diesem Beispiel sind zudem auf unserer Homepage Beispiel-
programme zum Download bereitgestellt.
Konfiguration:
1. Freischaltung der Interruptfunktion der Karte (siehe Kapitel
Interruptcontroller)
2. Freischalten des gewünschten Interrupts
Bevor der Flankenerkennungsinterrupt freigeschaltet wird, muss über-
prüft werden, ob das Flankenspeicherregister OPTOINIF vollständig
zurückgesetzt ist, da sonst eventuell sofort nach der Freigabe des
Interrupts ein Interrupt ausgelöst wird. Sind nicht alle Bits im Register
OPTOINIF zurückgesetzt, schreiben Sie den Wert 0xffffffff(hex) in das
Register OPTOINIFr.
Aus der Tabelle ist zu entnehmen, dass zur Freischaltung des
Flankenerkennungsinterruptes am Kanal IN01 Bit 1 im Register
OPTOINIFe gesetzt werden muss. Mit Hilfe des PCIe-Schreibbefehls
wird also der Wert 0x00000002(hex) bzw. 2(dec) in dieses Register
geschrieben.