DELIB API Referenz > Digitale Zähler Funktionen für RO-Counter Module  > DapiCnt48ModeSet

Navigation:

 

DELIB API Referenz > Digitale Zähler Funktionen für RO-Counter Module  >



DapiCnt48ModeSet

Previous pageReturn to chapter overviewNext page

Beschreibung

Dieser Befehl setzt einen Zählmodus (optional auch Submodus) und Eingangsfilter für einen bestimmten Eingangszählerkanal.

Definition

void DapiCnt48ModeSet(ULONG handle, ULONG ch, ULONG mode);

Parameter

handle = Dies ist das Handle eines geöffneten Moduls

ch = Nummer des Eingangszählerkanals, dessen Modus gesetzt werden soll (0, 1, 2, 3, .. )

mode = Gibt den Modus an

 

Übersicht verfügbare Zähler Modi

Mode

Wert[hex]

CNT8

CNT/IGR

DAPI_CNT48_MODE_COUNT_RISING_EDGE

0

X

X

DAPI_CNT48_MODE_COUNT_RISING_EDGE_X2

1

 

X

DAPI_CNT48_MODE_COUNT_RISING_EDGE_X4

2

 

X

DAPI_CNT48_MODE_T

D

X

 

DAPI_CNT48_MODE_FREQUENCY

E

X

 

DAPI_CNT48_MODE_PWM

F

X

 

 

Submode

Wert[hex]

HW-Reset verfügbar

DAPI_CNT48_SUBMODE_NO_RESET

0

x

DAPI_CNT48_SUBMODE_RESET_WITH_READ

1

x

DAPI_CNT48_SUBMODE_NO_RESET

2

 

DAPI_CNT48_SUBMODE_RESET_WITH_READ

3

 

Mögliche Werte für mode

mode=DAPI_CNT48_MODE_COUNT_RISING_EDGE |

DAPI_CNT48_SUBMODE_NO_RESET

In diesem Modus wird bei steigender Flanke gezählt.

 

mode=DAPI_CNT48_MODE_COUNT_RISING_EDGE |

DAPI_CNT48_SUBMODE_RESET_WITH_READ

In diesem Modus wird bei steigender Flanke gezählt. Zusätzlich wird bei jedem Lesevorgang der Zähler resettet.

 

mode=DAPI_CNT48_MODE_COUNT_RISING_EDGE |

DAPI_CNT48_SUBMODE_RESET_ON_CH_7

In diesem Modus wird bei steigender Flanke gezählt. Zusätzlich kann der Zähler über ein externes Signal (letzer Kanal des Moduls = 1) resettet werden.

 

mode=DAPI_CNT48_MODE_COUNT_RISING_EDGE |

DAPI_CNT48_SUBMODE_LATCH_COMMON

Mit dem Befehl "DapiSpecialCommand(handle, DAPI_SPECIAL_CMD_CNT48, DAPI_SPECIAL_CNT48_LATCH_GROUP8, 0, 0)" werden alle 8 Zählerstände der Eingangszähler gleichzeitig in einen Zwischenspeicher (Latch) geschrieben. Mit diesem Modus kann dann der gelatchte Zählerstand ausgelesen werden.

mode=DAPI_CNT48_MODE_T

Mit diesem Modus wird die Periodendauer T gemessen. Als Basis hierbei dient ein 100 MHz Zähler.

 

mode=DAPI_CNT48_MODE_FREQUENCY

Bei diesem Modus lässt sich die Anzahl der steigenden Flanken innerhalb einer Sekunde (=Frequenz) messen.

 

mode=DAPI_CNT48_MODE_PWM

Mit diesem Modus werden die "high" und "low" Zeit eines Signals gemessen. Dadurch kann anschließend das Verhältnis bestimmt werden (PWM).

 

 

Zusätzlich können alle Eingangszähler mit einem Eingangsfilter (mit einer oder-Verknüpfung) kombiniert werden. Hierzu stehen folgende Eingangsfilter zur Verfügung:

 

DAPI_CNT48_FILTER_20ns

DAPI_CNT48_FILTER_100ns

DAPI_CNT48_FILTER_250ns

DAPI_CNT48_FILTER_500ns

DAPI_CNT48_FILTER_1us

DAPI_CNT48_FILTER_2_5us

DAPI_CNT48_FILTER_5us

DAPI_CNT48_FILTER_10us

DAPI_CNT48_FILTER_25us

DAPI_CNT48_FILTER_50us

DAPI_CNT48_FILTER_100us

DAPI_CNT48_FILTER_250us

DAPI_CNT48_FILTER_500us

DAPI_CNT48_FILTER_1ms

DAPI_CNT48_FILTER_2_5ms

DAPI_CNT48_FILTER_5ms

Return-Wert

Keiner

Bemerkung

Dieser Befehl wird nur von unserem Modul RO-CNT8 unterstützt.

Programmierbeispiel

DapiCnt48ModeSet(handle, 0, DAPI_CNT48_MODE_COUNT_RISING_EDGE | DAPI_CNT48_SUBMODE_RESET_WITH_READ | DAPI_CNT48_FILTER_20ns);

//Eingangszählerkanal 0 zählt alle Impulse <= 20ns bei steigender Flanke. Zusätzlich wird der Zähler nach Abfrage resettet.

DapiCnt48ModeSet(handle, 1, DAPI_CNT48_MODE_COUNT_RISING_EDGE | DAPI_CNT48_SUBMODE_RESET_ON_CH_7 | DAPI_CNT48_FILTER_500us);

//Eingangszählerkanal 1 zählt alle Impulse <= 500us bei steigender Flanke. Dieser Zähler kann mit einem externen Signal (ch7 = 1) resettet werden.

DapiCnt48ModeSet(handle, 2, DAPI_CNT48_MODE_PWM | DAPI_CNT48_FILTER_5ms);

//Eingangszählerkanal 2 misst alle low-/high Zeiten <= 5ms. Anschließend wird das Verhältnis bestimmt (PWM).