37
OPTOIO-PCIe16
ULTRA
© 2017 by Messcomp Datentechnik GmbH
DV01
37
OPTOIO-PCIe16
ULTRA
© 2017 by Messcomp Datentechnik GmbH
EV04
37
37
wasco
®
wasco
®
8. Timer
The available 32-bit timers can be used as a timer or for configurable in
-
terval interrupt triggering. For this, intervals between 0 and 4294967295µs
can be adjusted in steps of 1µs.
8.1 Using as an interval interrupt trigger
1. Start with clearing the timer x by deleting the bit 0 of the register TIMERxe
and then reset the timer. This reset is executed by writing the value 0 to
the register TIMERx.
2. Next, determinate the interval. The duration of the interval is set in the
writable 32-bit register TIMERCOMPx
Interval duration = (TIME 1)*1µs
3. In order to trigger an interrupt after the interval has elapsed, the timer
has to be enabled. For this, set the corresponding bit in register TIMERIRe.
(Attention: the interrupt controller has to be enabled, too)
4. The timer being configured completely, activate it by setting bit 0 in the
register TIMERxe.
5. If the interrupt has been triggered, this can be checked in the register
TIMERIR. To receive a new interrupt, the source bit must be cleared by
setting the respective reset bit in register TIMERIRr
8. Timer
Die zur Verfügung stehenden 32Bit-Timer lassen sich als Zeitgeber oder
zur konfigurierbaren Intervall-Interruptauslösung verwenden. Dabei können
Intervalle zwischen 0 und 4294967295 µs in 1-µs-Schritten eingestellt
werden.
8.1 Anwendung Intervall-Interruptauslösung
1. Zu Beginn muss der Timer x durch Löschen von Bit 0 des Registers
TIMERxe deaktiviert und anschließend resetted werden. Der Reset
wird durch das Beschreiben des Registers TIMERx mit dem Wert 0
durchgeführt.
2. Anschließend muss der Intervall festgelegt werden. Die Intervalldauer
wird im beschreibbaren 32Bit Register TIMERCOMPx festgelegt.
Intervalldauer = (TIME 1)*1µs
3. Damit der Timer nach Ablauf des Intervalls einen Interrupt auslöst, muss
dieser freigeschalten werden, was über das Setzen des entsprechenden
Bits im Register TIMERIRe geschieht. (Achtung: auch der Interruptcontroller
muss freigeschalten sein)
4. Ist der Timer fertig konfiguriert, kann er durch das Setzen von Bit 0 im
Register TIMERxe aktiviert werden.
5. Wurde der Interrupt ausgelöst, kann dies im Register TIMERIR überprüft
werden. Um einen erneuten Interrupt zu empfangen, muss das Quellenbit
durch das Setzen des zugehörigen Resetbits im Register TIMERIRr ge-
löscht werden.