26.10.2014 Views

GPG-6320 - インタフェース

GPG-6320 - インタフェース

GPG-6320 - インタフェース

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

UCNT(PCI/C-PCI)Linux/RT<br />

<strong>GPG</strong>-<strong>6320</strong><br />

ユニバーサルカウンタ <strong>インタフェース</strong>モジュール 用 Linux/RT ドライバ<br />

Help for Linux<br />

www.interface.co.jp


UCNT(PCI/C-PCI)Linux/RT<br />

目 次<br />

第 1 章 はじめに .................................................3<br />

1.1 概 要 ...........................................................................3<br />

1.2 特 長 ...........................................................................3<br />

第 2 章 製 品 仕 様 .................................................4<br />

2.1 動 作 環 境 .......................................................................4<br />

2.2 対 象 製 品 と 対 応 カーネル .........................................................5<br />

2.3 基 本 仕 様 .......................................................................6<br />

第 3 章 導 入 方 法 .................................................7<br />

3.1 デバイスを 動 かすまで ...........................................................7<br />

3.2 実 行 手 順 ( 万 能 カウンタ) ......................................................10<br />

3.3 実 行 手 順 ( 高 速 カウンタ) ......................................................14<br />

3.4 CardBusID 設 定 ユーティリティについて ...........................................16<br />

第 4 章 リファレンス ............................................17<br />

4.1 DLL 関 数 一 覧 ( 万 能 カウンタ) ...................................................17<br />

4.2 関 数 個 別 説 明 ( 万 能 カウンタ) ..................................................19<br />

4.3 DLL 関 数 一 覧 ( 高 速 カウンタ) ..................................................154<br />

4.4 関 数 個 別 説 明 ( 高 速 カウンタ) .................................................155<br />

4.5 構 造 体 説 明 ...................................................................205<br />

4.6 戻 り 値 一 覧 ...................................................................208<br />

4.7 Kylixをお 使 いの 方 へ ..........................................................211<br />

4.8 テストドライバの 使 用 方 法 .....................................................213<br />

第 5 章 サンプルプログラム .....................................215<br />

5.1 実 行 手 順 .....................................................................215<br />

5.2 サンプルプログラム 一 覧 .......................................................215<br />

第 6 章 重 要 な 情 報 .............................................216<br />

© 2005, 2012 Interface Corporation. All rights reserved.<br />

2


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

第 1 章 はじめに<br />

1.1 概 要<br />

<strong>GPG</strong>-<strong>6320</strong> は、Linux アプリケーションから、 弊 社 ユニバーサルカウンタボードを 制 御 する 為 のソ<br />

フトウェアです。<br />

本 ドキュメントは、Linux 上 で <strong>GPG</strong>-<strong>6320</strong> を 使 用 するための 情 報 を 掲 載 しています。<br />

1.2 特 長<br />

● 機 能 モードを 切 り 替 える 事 で、パルスカウント、 平 均 周 波 数 測 定 、 周 期 測 定 、 位 相 差 幅 測 定 、<br />

タイマー、 分 周 器 、パルスジェネレータとして 各 チャンネルを 使 用 することが 可 能 です。<br />

●エンコーダからのパルスカウントに 対 応 しています。<br />

● 最 大 6 チャンネル( 万 能 4 チャンネル/ 高 速 2 チャンネル)を 独 立 に 制 御 することが 可 能 です。<br />

●ラッチしたカウンタ 値 と 入 力 端 子 状 態 を、 指 定 した 件 数 分 メモリ 上 に 保 存 することが 可 能 です。<br />

内 部 クロックを 使 用 したラッチを 行 うことで、 指 定 周 期 でのサンプリング 動 作 を 行 います。<br />

● 各 種 割 り 込 み 機 能 を 搭 載 しており、 割 り 込 み 発 生 時 にはコールバックイベントを 発 生 させるこ<br />

とが 可 能 です。<br />

● 外 部 信 号 によるスタート・ストップ 機 能 / 汎 用 入 出 力 機 能 を 搭 載 しています。<br />

● 各 種 モードを 使 用 したカウント 機 能 を 使 用 する 為 の、 動 作 確 認 用 アプリケーションが 付 属 して<br />

います。また、 各 カウントモードのプログラム 作 成 時 に 参 考 となる、サンプルプログラムを 用<br />

意 しています。<br />

● 機 能 や 使 い 方 を 説 明 するヘルプをサポートしていますので、 開 発 中 に 関 数 の 詳 細 説 明 などを 参<br />

照 することができます。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

3


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

第 2 章 製 品 仕 様<br />

2.1 動 作 環 境<br />

対 応 機 種<br />

ドライバ 種 別<br />

組 み 込 み 方 式<br />

メジャー 番 号 割 り 当 て<br />

ソースコードの<br />

取 り 扱 い<br />

ビルドサポート<br />

対 応 カーネルバージョン<br />

ヘルプファイル<br />

弊 社 製 FA コンピュータ<br />

弊 社 製 Classembly Devices®<br />

PC/AT 互 換 機<br />

キャラクタ 型 ドライバ<br />

モジュール(ダイナミックロード/アンロード)<br />

自 動 割 り 当 て<br />

ドライバモジュール 一 部 公 開<br />

ライブラリソースコード 非 公 開<br />

共 用 モジュール 公 開<br />

メイクファイル 提 供<br />

・IBM PC/AT 互 換 機<br />

カーネル 2.2.x<br />

カーネル 2.4.x<br />

カーネル 2.6.x<br />

・ 弊 社 SH-CPU モジュール<br />

弊 社 SH-Linux<br />

・ 弊 社 Interface Linux<br />

PDF 形 式<br />

テキスト 形 式<br />

※CardBus シリーズは、Linux カーネル 2.4/カーネル 2.6、および pcmcia-cs-3.1.25 以 上 のバー<br />

ジョンでご 利 用 ください。 上 記 バージョンで CardBus カードが 認 識 されない 場 合 、カーネルコ<br />

ンフィギュレーションで PCMCIA、および CardBus がサポートしていることを 確 認 してください。<br />

また、/etc/sysconfig/pcmcia ファイルを、<br />

PCMCIA=yes<br />

PCIC=yenta_socket<br />

に 修 正 し、 再 起 動 してください。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

4


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

2.2 対 象 製 品 と 対 応 カーネル<br />

PCI シリーズ(PCI バス 製 品 )<br />

PCI-632206, PCI-632206TK, PCI-632206TL<br />

PCI-632302<br />

LPC シリーズ(Low Profile PCI バス 製 品 )<br />

LPC-632102, LPC-632104<br />

PEX シリーズ(PCI Express バス 製 品 )<br />

PEX-632102, PEX-632104<br />

CPZ シリーズ(CompactPCI バス 製 品 )<br />

CPZ-632206<br />

CSI シリーズ(CardBus 製 品 )<br />

CSI-632106<br />

CBI シリーズ(CardBus 製 品 )<br />

CBI-632106, CBI-632106TK, CBI-632106TKA, CBI-632106TL,<br />

CBI-632106TLA, CBI-632106TR<br />

タフコン CD シリーズ<br />

ITC-A81310(L), ITC-A71310T(L), ITC-A61310(L)<br />

ITC-x3620 系 製 品 , ITC-x3624 系 製 品 , ITC-x3625 系 製 品 , ITC-x2984 系 製 品<br />

I/O 付 きタッチパネル CD シリーズ<br />

TIO-N3620 系 製 品 , TIO-N3624 系 製 品 , TIO-N3625 系 製 品<br />

TIO-N2984 系 製 品<br />

マザコンシリーズ<br />

IMC-T6323 系 製 品<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

5


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

2.3 基 本 仕 様<br />

最 大 デバイス 数<br />

動 作 モード<br />

サンプリング<br />

同 一 型 式 16 デバイスまで<br />

万 能 カウンタの 各 チャンネルを 下 記 の 動 作 モードで 使 用 するこ<br />

とが 可 能 です。<br />

・パルスカウント<br />

(1 パルス/DIR、UP/DOWN パルス、 位 相 差 パルス、 内 部 基 準 クロ<br />

ック)<br />

・ 平 均 周 波 数 測 定<br />

(1 パルス/DIR、UP/DOWN パルス、 位 相 差 パルス)<br />

・ 周 期 (パルス 幅 ) 測 定<br />

( 全 周 期 、High パルス 幅 、Low パルス 幅 、デューティ 比 (High/Low<br />

パルス 幅 ))<br />

・ 位 相 差 幅 測 定<br />

( 位 相 差 幅 、 全 位 相 差 幅 )<br />

・タイマ<br />

・ 分 周 器<br />

・パルスジェネレータ<br />

高 速 カウンタの 各 チャンネルを 下 記 の 動 作 モードで 使 用 するこ<br />

とが 可 能 です。<br />

・パルスカウント<br />

(ゲート 付 き 単 層 パルス)<br />

万 能 カウンタでは 内 部 / 外 部 クロックのタイミングでカウンタ<br />

値 のサンプリングを 行 うことが 可 能 です。<br />

汎 用 入 出 力 ・ 各 チャンネル 7 点 ( 万 能 カウンタ 側 )<br />

・4 点 ( 高 速 カウンタ 側 )<br />

イベントコールバック アプリケーションでコールバック 関 数 呼 び 出 しを 行 うことがで<br />

きます。<br />

本 ライブラリは、 以 下 のイベントを 通 知 することができます。<br />

・キャリー 発 生<br />

・ボロー 発 生<br />

・カウンタ 値 とプリセット 値 の 一 致 検 出<br />

(OUTA/OUTB)<br />

・ 外 部 トリガ(スタート/ストップ)<br />

・ 位 相 差 パルス 異 常 検 出<br />

・ 外 部 ラッチ、 基 準 クロックラッチ 発 生<br />

・ 外 部 プリロード<br />

・サンプリング 完 了<br />

・ 指 定 件 数 サンプリング 完 了<br />

・サンプリング 用 FIFO オーバーランエラー 発 生 時<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

6


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

第 3 章 導 入 方 法<br />

3.1 デバイスを 動 かすまで<br />

1. インストール<br />

デバイスをスロットに 実 装 しシステムを 起 動 します。<br />

インストーラを 起 動 し、Linux ドライバのインストールを 行 います。<br />

詳 しいインストール 方 法 は、Readme をご 参 照 ください。<br />

#bash install<br />

インストーラの 指 示 に 従 って、インストールを 行 ってください。<br />

2. ドライバモジュールの 組 み 込 み<br />

<strong>GPG</strong>-<strong>6320</strong> の Linux 用 ドライバモジュールを 組 み 込 みます。<br />

ドライバ 組 み 込 み 用 シェルスクリプトを 実 行 してください。<br />

#cd /usr/src/interface/gpg<strong>6320</strong>/(アーキテクチャ 名 ※)/linux/drivers<br />

#./insmcnt.sh<br />

※アーキテクチャ 名 には、PC/AT 互 換 機 の 場 合 i386、SH-CPU ボードの 場 合 sh になります。 以 下<br />

同 じです。<br />

3. デバイス 番 号 設 定<br />

デバイス 番 号 を 設 定 します。デバイス 番 号 設 定 ユーティリティ setup.sh を 起 動 させます。<br />

#./setup.sh<br />

デバイス 番 号 設 定 ユーティリティを 起 動 させると、 以 下 の 画 面 が 表 示 されます。<br />

**************************************************<br />

Setup Utility<br />

--------------------------------------------------<br />

Version: 1.10-05<br />

--------------------------------------------------<br />

Copyright 2002,2004 Interface Corporation.<br />

All rights reserved.<br />

**************************************************<br />

Enter the model number of the product: <strong>GPG</strong>-<br />

入 力 画 面 では、”<strong>6320</strong>u”を 打 ち 込 んでリターンキーを 押 してください。<br />

==================================================<br />

Ref.ID | Model | RSW1 | TYPE | Device No.<br />

--------------------------------------------------<br />

1 | CBI-632106 | 0 | UCNT | 1<br />

==================================================<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

7


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

項 目<br />

Ref.ID<br />

Model<br />

RSW1<br />

TYPE<br />

Device No.<br />

内 容<br />

そのデバイス 番 号 の ID です。<br />

次 のメニューでデバイス 番 号 の 変 更 などを 行 う 際 に 指 定 します。<br />

現 在 システムが 認 識 している <strong>GPG</strong>-<strong>6320</strong> が 制 御 するデバイス 一 覧 です。<br />

ボード 上 の RSW1 の 設 定 値 です。<br />

カウンタの 機 能 を 示 します。(UCNT: 万 能 カウンタ、HSCNT: 高 速 カウンタ)<br />

各 ボードに 割 り 当 てられたデバイス 番 号 です。 任 意 の 値 に 変 更 可 能 です。<br />

※ITC-x2984、IMC-T6323 系 製 品 をご 使 用 の 場 合<br />

Model は「PCI-632304」と 表 示 されます。IMC-T6323 では RSW1 の 値 が 0 のデバイスが「CN2」、RSW1<br />

の 値 が 1 のデバイスが「CN3」に 相 当 します。<br />

次 にメニューを 選 択 します。メニューに 示 されている 番 号 を 入 力 することでそれぞれの 設 定 変 更<br />

が 可 能 です。<br />

************* Command **************<br />

1. Change Device Number.<br />

2. Delete Device Number.<br />

3. Load new device setting file.<br />

4. Run the initialization program.<br />

5. Run the CardBus ID setup utility.<br />

99.Exit the program.<br />

************************************<br />

Enter the Command number:<br />

番 号 項 目 内 容<br />

1 デバイス 番 号 の 変 更 ボードのデバイス 番 号 を 変 更 します。<br />

2 デバイス 番 号 (ノード)の 削 除 設 定 されたデバイス 番 号 を 削 除 します。ID を 入 力<br />

してください。ここでデバイス 番 号 を 削 除 した 場 合<br />

は、 再 度 setup.sh を 実 行 するとデバイス 番 号 が 設<br />

定 されます。<br />

3 別 のソフト 型 式 のデバイス 番 号 設<br />

定<br />

<strong>GPG</strong>-<strong>6320</strong> 以 外 の <strong>GPG</strong>-XXXX で 制 御 するボード 型 式 の<br />

デバイス 番 号 設 定 に 移 ります。 他 のカテゴリ( 例 え<br />

ば DIO(<strong>GPG</strong>-2000)など)と 併 用 してシステムを 構<br />

築 している 場 合 に 使 用 してください。<br />

4 初 期 設 定 ユーティリティの 起 動 <strong>GPG</strong>-<strong>6320</strong> では 使 用 できません。<br />

5 CardBusID 設 定 ユーティリティの<br />

起 動<br />

CardBus 製 品 のボード ID 表 示 / 設 定 を 行 います。<br />

「3.4 CardBusID 設 定 ユーティリティについて」を<br />

参 照 してください。<br />

99 プログラムの 終 了 デバイス 番 号 設 定 ユーティリティを 終 了 します。<br />

※ 万 能 カウンタ”<strong>6320</strong>u”の 設 定 完 了 後 、 再 度 「3.デバイス 番 号 設 定 」の 最 初 に 戻 って、 高 速 カウン<br />

タ”<strong>6320</strong>hs”の 設 定 を 行 ってください。<br />

※ 万 能 カウンタと 高 速 カウンタのデバイス 番 号 は 重 複 しても 問 題 ありません。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

8


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

4. プログラム 作 成<br />

プログラムの 作 成 を 行 います。<br />

5. コンパイル<br />

作 成 したプログラムをコンパイルします。コマンド 例 を 以 下 に 示 します。<br />

ここでは、サンプルプログラム 名 ( 万 能 カウンタ 用 )を「ucnt_sample.c」とした 場 合 です。<br />

#gcc -o ucnt_sample ucnt_sample.c -lgpg<strong>6320</strong>u<br />

高 速 カウンタ 用 サンプルプログラム「hscnt_sample.c」の 場 合 には 下 記 の 様 になります。<br />

#gcc -o hscnt_sample hscnt_sample.c -lgpg<strong>6320</strong>hs<br />

※ 万 能 カウンタの 制 御 を 行 う 関 数 (UcntXXXX)を 使 用 する 場 合 には「libgpg<strong>6320</strong>u.so」を、<br />

高 速 カウンタの 制 御 を 行 う 関 数 (HScntXXXX)を 使 用 する 場 合 には「libgpg<strong>6320</strong>hs.so」を<br />

コンパイル 時 にリンクして 使 用 します。<br />

6. 実 行<br />

コンパイルすることで 実 行 ファイルができていますので、<br />

#./ucnt_sample<br />

もしくは、<br />

#./hscnt_sample<br />

と 入 力 し、プログラムを 実 行 してください。より 詳 しい 制 御 方 法 は、『3.2 実 行 手 順 』をご 参 照 く<br />

ださい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

9


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

3.2 実 行 手 順 ( 万 能 カウンタ)<br />

基 本 的 な 制 御 の 手 順 は 以 下 の 通 りです。<br />

( 関 数 の 記 述 例 には C 言 語 を 使 用 しています。)<br />

1. 初 期 化<br />

ボードを UcntOpen 関 数 で 初 期 化 します。<br />

使 用 するデバイスに 割 り 当 てられたデバイス 番 号 を 引 数 として 渡 すことで、 指 定 したデバイスの<br />

初 期 化 を 行 います。<br />

初 期 化 が 正 常 終 了 すると、 以 後 、ボードへのアクセスが 可 能 となります。<br />

int nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

初 期 化 が 正 常 終 了 すると 上 記 の 記 述 例 では nRet に「IFUCNT_ERROR_SUCCCESS」が 返 されます。<br />

2. 機 能 モードの 設 定<br />

使 用 目 的 に 応 じて 最 適 な 機 能 モードの 設 定 を 行 います。<br />

設 定 可 能 なカウントモードは 次 の 7 種 類 となります。<br />

(それぞれ 同 名 のモード 設 定 用 関 数 を 使 用 して 基 本 的 な 設 定 を 行 います)<br />

・パルスカウントモード: (UcntSetPulseCountMode)<br />

・ 平 均 周 波 数 測 定 モード: (UcntSetFreqAvgMode)<br />

・ 周 期 測 定 モード: (UcntSetCycleMode)<br />

・ 位 相 差 幅 測 定 モード: (UcntSetPhaseDiffMode)<br />

・タイマモード:<br />

(UcntSetTimerMode)<br />

・ 分 周 期 モード: (UcntSetFreqDividerMode)<br />

・パルスジェネレータモード: (UcntSetPulseGeneratorMode)<br />

各 機 能 モードから 別 の 機 能 モードへ 設 定 変 更 を 行 った 場 合 、 各 種 設 定 が 初 期 化 されます。<br />

機 能 モードの 変 更 は、カウンタ 及 びサンプリングを 停 止 した 状 態 で 行 ってください。<br />

UcntOpen 関 数 によるオープン 直 後 、もしくは UcntReset 関 数 によるデバイスの 初 期 化 直 後 には、<br />

パルスカウントモードが 初 期 モードとして 設 定 されます。<br />

3.カウンタ 機 能 設 定<br />

機 能 モード 設 定 用 の 関 数 を 使 用 して 基 本 的 な 動 作 設 定 を 行 った 後 に、その 他 のカウンタ 機 能 の 設<br />

定 を 行 います。<br />

設 定 可 能 な 機 能 は 下 記 の 用 になります。( 括 弧 内 は 設 定 用 の 関 数 名 となります。)<br />

・プリロードデータ 設 定 :<br />

(UcntSetLoadData)<br />

・ 基 準 クロック 設 定 : (UcntSetBaseClock)<br />

・スタート/ストップトリガモード 設 定 : (UcntSetTriggerConfig)<br />

・トリガチャンネル 設 定 :<br />

(UcntSetTriggerConfig)<br />

・ 一 致 検 出 モード 設 定 : (UcntSetTriggerChannel)<br />

・デジタルフィルタ 設 定 :<br />

(UcntSetFilter)<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

10


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

※ 現 在 の 機 能 モードによって、 設 定 変 更 が 可 能 な 機 能 が 異 なります。<br />

設 定 変 更 を 行 うことができない 機 能 モードを 使 用 している 場 合 には、 各 関 数 の 実 行 時 に<br />

「IFUCNT_ERROR_INVALID_FUNC_MODE」が 戻 り 値 として 返 されます。<br />

4.カウントの 開 始<br />

カウント 機 能 を 有 効 にする 為 に、UcntStartCount 関 数 を 実 行 します。<br />

nRet = UcntStartCount(nDevice, 0x01, IFUCNT_CMD_START);<br />

第 2 引 数 にカウントを 開 始 するチャンネルを 指 定 することで、 複 数 チャンネルのスタートを 同 時<br />

に 行 うことが 可 能 となります。( 上 記 の 例 ではチャンネル 1 のみ 開 始 しています。)<br />

スタートトリガに 設 定 した 外 部 入 力 のタイミングでカウントを 開 始 したい 場 合 には、スタートコ<br />

マンドに IFUCNT_CMD_EXWAIT を 指 定 します。<br />

nRet = UcntStartCount(nDevice, 0x01, IFUCNT_CMD_EXWAIT);<br />

5.カウントの 停 止<br />

カウント 機 能 を 停 止 する 場 合 、UcntStopCount 関 数 を 実 行 します。<br />

nRet = UcntStopCount(nDevice, 0x01, IFUCNT_CMD_STOP);<br />

第 2 引 数 にカウントを 停 止 するチャンネルを 指 定 することで、 複 数 チャンネルのストップを 同 時<br />

に 行 うことが 可 能 となります。( 上 記 の 例 ではチャンネル 1 のみ 停 止 しています。)<br />

6.カウンタ 値 の 設 定 ・ 取 得<br />

予 めカウンタに 値 を 設 定 したい 場 合 には、UcntSetCounter 関 数 を 実 行 します。<br />

dwCounter[0] = 10000;<br />

nRet = UcntSetCounter(nDevice, 0x01, dwCounter);<br />

配 列 に 指 定 した 値 が、カウンタの 初 期 値 として 設 定 されます。<br />

第 2 引 数 にカウンタ 値 を 設 定 するチャンネルを 指 定 することで、 複 数 チャンネルのカウンタ 値 を<br />

同 時 に 設 定 することが 可 能 となります。( 上 記 の 例 ではチャンネル 1 のみ 設 定 しています。)<br />

カウンタ 値 の 取 得 を 行 う 際 には、 通 常 のカウンタ 読 み 出 しとラッチカウンタの 読 み 出 しの 2 種 類<br />

の 関 数 があります。<br />

nRet = UcntReadCounter(nDevice, 0x01, dwCounter);<br />

UcntReadCounter 関 数 を 実 行 した 場 合 、 関 数 実 行 時 点 の 最 新 のカウンタ 値 を 読 み 出 すことが 可 能 と<br />

なります。<br />

nRet = UcntReadLatchCounter(nDevice, 0x01, dwCounter);<br />

UcntReadLatchCounter 関 数 を 実 行 した 場 合 には、 前 回 のラッチタイミング 時 にデバイスに 保 持 さ<br />

れたカウンタ 値 を 読 み 出 すことが 可 能 となります。<br />

周 期 測 定 モード、 位 相 差 幅 測 定 モードの 使 用 時 には、ラッチカウンタの 値 を 読 み 出 す 必 要 があり<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

11


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

ます。<br />

その 他 の 機 能 モードでは、 必 要 に 応 じてカウンタとラッチカウンタの 読 み 出 しを 選 択 してくださ<br />

い。<br />

また、カウンタ 値 のラッチ 動 作 をソフトウェアで 指 定 したタイミングで 行 いたい 場 合 には、<br />

UcntLatchCount 関 数 を 実 行 します。<br />

( 複 数 チャンネルの 同 時 ラッチが 可 能 です。)<br />

7.ステータス 情 報 の 取 得<br />

各 チャンネル 毎 の 入 力 端 子 状 態 を 取 得 したい 場 合 には、UcntGetStatus 関 数 を 実 行 します。<br />

nRet = UcntGetStatus(nDevice, 0x01, dwStatus);<br />

配 列 の 先 頭 要 素 のアドレスを 関 数 に 渡 すことで、 複 数 チャンネルのステータス 情 報 を 同 時 に 取 得<br />

することが 可 能 です。<br />

( 上 記 の 例 ではチャンネル 1 のステータスのみ 取 得 しています。)<br />

8.ラッチカウンタ 値 のサンプリング<br />

ラッチ 動 作 のタイミングで 保 持 されたカウンタ 値 と 入 力 端 子 の 状 態 を、 指 定 した 件 数 分 取 得 する<br />

ことが 可 能 です。<br />

( 内 部 クロックのタイミングでラッチを 行 う 設 定 にすることで、 指 定 周 期 でのサンプリング 動 作<br />

を 実 行 可 能 です。)<br />

各 動 作 モードの 設 定 後 、サンプリングデータを 保 持 する 件 数 や 繰 り 返 し 回 数 、イベントを 発 生 さ<br />

せる 件 数 等 のサンプリングに 関 する 設 定 を 行 います。<br />

UCNTSMPLCONFIG SmplConfig;<br />

SmplConfig.dwSmplNum = 1000;<br />

SmplConfig.dwSmplEventNum = 500;<br />

SmplConfig.dwRepeat = 1;<br />

SmplConfig.dwStatusMode = IFUCNT_NO_STATUS;<br />

SmplConfig.dwErrCtrl = IFUCNT_FREERUN;<br />

nRet = UcntSetSampingConfig(nDevice, 1, &SmplConfig);<br />

UcntSetSamplingConfig 関 数 でサンプリングに 関 する 設 定 を 完 了 後 、UcntStartCount 関 数 でサンプ<br />

リング 動 作 を 開 始 します。<br />

nRet = UcntStartCount(nDevice, 0x01, IFUCNT_CMD_START | IFUCNT_CMD_SAMPLING);<br />

カウンタのスタートコマンドと、サンプリングスタートのコマンドを OR で 指 定 します。<br />

サンプリング 動 作 を 停 止 する 場 合 は、UcntStopCount 関 数 を 実 行 します。<br />

nRet = UcntStopCount(nDevice, 0x01, IFUCNT_CMD_STOP | IFUCNT_CMD_SAMPLING);<br />

カウンタのストップコマンドと、サンプリングストップのコマンドを OR で 指 定 します。<br />

サンプリング 状 態 を 取 得 する 場 合 は、UcntGetSamplingStatus 関 数 を 実 行 します。<br />

nRet = UcntGetSamplingStatus(nDevice, 1, &dwSmplStatus, &dwSmplCount, &dwRepCount);<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

12


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

指 定 した 変 数 に 現 在 のサンプリング 状 態 、サンプリング 完 了 件 数 、 繰 り 返 し 回 数 が 格 納 されます。<br />

サンプリングが 完 了 したデータを 取 得 する 場 合 には、UcntClearSamplingData 関 数 を 実 行 します。<br />

unsigned long dwSmplData[1000];<br />

unsigned long dwSmplDataNum = 1000;<br />

nRet = UcntGetSamplingData(nDevice, 1, dwSmplData, &dwSmplDataNum);<br />

9. 汎 用 入 出 力<br />

汎 用 入 出 力 の 制 御 は UcntOutputDO 関 数 ,UcntInputDI 関 数 で 行 います。<br />

デバイスのオープン 直 後 は 各 チャンネルのOUTA、OUTBのみ 汎 用 出 力 を 制 御 可 能 な 状 態 となってい<br />

ます。OUTA、OUTB 以 外 の 端 子 の 汎 用 出 力 制 御 を 行 う 際 には、UcntSetDOEnable 関 数 を 実 行 して、 出<br />

力 制 御 を 許 可 する 必 要 があります。<br />

nRet = UcntSetDOEnable(nDevice, 0xFF);<br />

UcntSetDOEnable 関 数 で 出 力 許 可 を 行 った 端 子 にはエンコーダなどの 出 力 を 行 う 機 器 を 接 続 しな<br />

いでください。<br />

10.コールバック 関 数<br />

各 種 割 り 込 み 発 生 時 にコールバック 関 数 を 実 行 することができます。<br />

UcntSetEventMask 関 数 にて、コールバック 関 数 を 発 生 させる 要 因 を 設 定 します。<br />

各 割 り 込 みイベントに 対 応 したビットに”1”を 設 定 することでコールバック 関 数 が 有 効 になりま<br />

す。<br />

UcntSetEvent 関 数 でコールバック 関 数 の 登 録 を 行 います。<br />

11. 終 了 処 理<br />

UcntClose 関 数 でデバイスの 終 了 処 理 を 行 います。アプリケーションでは、 必 ずクローズ 処 理 を 行<br />

ってから 終 了 してください。<br />

nRet = UcntClose(nDevice);<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

13


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

3.3 実 行 手 順 ( 高 速 カウンタ)<br />

基 本 的 な 制 御 の 手 順 は 以 下 の 通 りです。<br />

( 関 数 の 記 述 例 には C 言 語 を 使 用 しています。)<br />

1. 初 期 化<br />

ボードを HScntOpen 関 数 で 初 期 化 します。<br />

使 用 するデバイスに 割 り 当 てられたデバイス 番 号 を 引 数 として 渡 すことで、 指 定 したデバイスの<br />

初 期 化 を 行 います。<br />

初 期 化 が 正 常 終 了 すると、 以 後 、ボードへのアクセスが 可 能 となります。<br />

int nDevice = 1;<br />

nRet = HScntOpen(nDevice);<br />

初 期 化 が 正 常 終 了 すると 上 記 の 記 述 例 では nRet に「IFUCNT_ERROR_SUCCCESS」が 返 されます。<br />

2.モードの 設 定<br />

HScntSetMode 関 数 を 実 行 し 外 部 イネーブル 機 能 と 外 部 クリア 機 能 の 設 定 を 行 います。<br />

外 部 イネーブル 機 能 を 有 効 に 設 定 すると 外 部 信 号 でカウンタの 有 効 / 無 効 を 指 定 可 能 となります。<br />

外 部 クリア 機 能 はを 有 効 に 設 定 すると 外 部 信 号 によるカウンタクリアを 実 行 可 能 となります。<br />

3.カウントの 開 始<br />

カウント 機 能 を 有 効 にする 為 に、HScntStartCount 関 数 を 実 行 します。<br />

nRet = HScntStartCount(nDevice, 0x01, IFHSCNT_CMD_START);<br />

第 2 引 数 にカウントを 開 始 するチャンネルを 指 定 することで、 複 数 チャンネルのスタートを 同 時<br />

に 行 うことが 可 能 となります。( 上 記 の 例 ではチャンネル 1 のみ 開 始 しています。)<br />

4.カウントの 停 止<br />

カウント 機 能 を 停 止 する 場 合 、HScntStopCount 関 数 を 実 行 します。<br />

nRet = HScntStopCount(nDevice, 0x01, IFHSCNT_CMD_STOP);<br />

第 2 引 数 にカウントを 停 止 するチャンネルを 指 定 することで、 複 数 チャンネルのストップを 同 時<br />

に 行 うことが 可 能 となります。( 上 記 の 例 ではチャンネル 1 のみ 停 止 しています。)<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

14


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

5.カウンタ 値 の 取 得<br />

HScntReadCounter 関 数 を 実 行 すると、 関 数 実 行 時 点 のカウンタ 値 を 読 み 出 すことが 可 能 です。<br />

nRet = HScntReadCounter(nDevice, 0x01, &dwCounter[0]);<br />

6.ステータス 情 報 の 取 得<br />

各 チャンネル 毎 の 入 力 端 子 状 態 を 取 得 したい 場 合 には、HScntGetStatus 関 数 を 実 行 します。<br />

nRet = HScntGetStatus(nDevice, 0x01, &dwStatus[0]);<br />

配 列 の 先 頭 要 素 のアドレスを 関 数 に 渡 すことで、 複 数 チャンネルのステータス 情 報 を 同 時 に 取 得<br />

することが 可 能 です。<br />

( 上 記 の 例 ではチャンネル 1 のステータスのみ 取 得 しています。)<br />

7.コールバック 関 数<br />

各 種 割 り 込 み 発 生 時 にコールバック 関 数 を 実 行 することができます。<br />

HScntSetEventMask 関 数 にて、コールバック 関 数 を 発 生 させる 要 因 を 設 定 します。<br />

各 割 り 込 みイベントに 対 応 したビットに”1”を 設 定 することでコールバック 関 数 が 有 効 になりま<br />

す。<br />

HScntSetEvent 関 数 でコールバック 関 数 の 登 録 を 行 います。<br />

コールバック 関 数 の 解 除 を 行 う 場 合 は<br />

HScntSetEventMask 関 数 にて、 割 り 込 み 要 因 をマスクし、HScntKillEvent 関 数 でコールバックイベ<br />

ントの 解 除 を 行 います。<br />

8. 終 了 処 理<br />

HScntClose 関 数 でデバイスの 終 了 処 理 を 行 います。アプリケーションでは、 必 ずクローズ 処 理 を<br />

行 ってから 終 了 してください。<br />

nRet = HScntClose(nDevice);<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

15


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

3.4 CardBusID 設 定 ユーティリティについて<br />

CardBusID 設 定 ユーティリティは、 複 数 枚 の 同 一 型 式 CardBus 製 品 を 使 用 する 為 のものです。カ<br />

ード 毎 に 異 なる ID 番 号 を 設 定 します。<br />

【 操 作 方 法 】<br />

#dpg0101 -c<br />

実 行 すると、 現 在 挿 入 されている 弊 社 CardBus 製 品 の 情 報 が 表 示 されます。<br />

=====================================================<br />

Ref.ID | Bus | Dev | Func | Model | RSW1<br />

-----------------------------------------------------<br />

1 | 2 | 0 | 1 | CBI-632106 | 0<br />

=====================================================<br />

項 目<br />

Ref.ID<br />

Bus<br />

Dev<br />

Func<br />

Model<br />

RSW1<br />

内 容<br />

カードのインデックス 番 号 です。<br />

メニューでカードの 選 択 を 行 う 際 に 指 定 します。<br />

カードが 挿 入 されているバス 番 号 を 示 します。<br />

カードが 挿 入 されているデバイス 番 号 を 示 します。<br />

カードが 挿 入 されているデバイス 番 号 を 示 します。<br />

カードの 型 式 を 示 します。<br />

設 定 されている ID 番 号 を 示 します。<br />

ID 番 号 を 変 更 したい 場 合 はメニューから「1」を 選 択 し、 変 更 を 行 いたいカードのインデックス<br />

番 号 を 入 力 します。<br />

**************Command********************<br />

1. Change the board id number.<br />

2. Run the device number setup utility.<br />

99. Exit the program.<br />

*****************************************<br />

Enter the command number: 1<br />

次 にカード ID 番 号 を 入 力 しリターンキーを 押 します。カード ID 番 号 は 0~15 の 値 を 入 力 してく<br />

ださい。<br />

Enter Ref.ID: 1<br />

Enter the board id number (0-15).<br />

If you want to cancel this operation, enter -1.<br />

: 1<br />

「99」を 選 択 することでユーティリティを 終 了 します。<br />

※ 変 更 した ID 番 号 をシステムに 認 識 させるには、ドライバの 再 起 動 が 必 要 です。<br />

※ 設 定 した ID 番 号 がわかるように 番 号 を 記 したシールをカードに 貼 ることをお 勧 めします。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

16


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

第 4 章 リファレンス<br />

4.1 DLL 関 数 一 覧 ( 万 能 カウンタ)<br />

No 関 数 名 機 能<br />

初 期 化<br />

1 UcntOpen デバイスをオープンします。<br />

2 UcntClose デバイスをクローズします。<br />

3 UcntGetDeviceInfo デバイス 情 報 を 取 得 します。<br />

4 UcntReset 各 種 設 定 の 初 期 化 、カウンタのクリアを 行 います。<br />

動 作 モード 設 定 / 取 得<br />

5 UcntSetPulseCountMode パルスカウントモードに 設 定 します。<br />

6 UcntGetPulseCountMode パルスカウントモードの 設 定 情 報 を 取 得 します。<br />

7 UcntSetFreqAvgMode 平 均 周 波 数 測 定 モードに 設 定 します。<br />

8 UcntGetFreqAvgMode 平 均 周 波 数 測 定 モードの 設 定 情 報 を 取 得 します。<br />

9 UcntSetCycleMode 周 期 測 定 モードに 設 定 します。<br />

10 UcntGetCycleMode 周 期 測 定 モードの 設 定 情 報 を 取 得 します。<br />

11 UcntSetPhaseDifferenceMode 位 相 差 幅 測 定 モードに 設 定 します。<br />

12 UcntGetPhaseDifferenceMode 位 相 差 幅 測 定 モードの 設 定 情 報 を 取 得 します。<br />

13 UcntSetTimer タイマモードに 設 定 します。<br />

14 UcntGetTimer タイマモードの 設 定 情 報 を 取 得 します。<br />

15 UcntSetFreqDividerMode 分 周 器 モードに 設 定 します。<br />

16 UcntGetFreqDividerMode 分 周 器 モードの 設 定 情 報 を 取 得 します。<br />

17 UcntSetPulseGeneratorMode パルスジェネレータモードに 設 定 します。<br />

18 UcntGetPulseGeneratorMode パルスジェネレータモードの 設 定 情 報 を 取 得 します。<br />

機 能 設 定 / 取 得<br />

19 UcntSetLoadData ロードデータを 設 定 します。<br />

20 UcntGetLoadData ロードデータの 設 定 情 報 を 取 得 します。<br />

21 UcntSetBaseClock 内 部 基 準 クロックを 設 定 します。<br />

22 UcntGetBaseClock 内 部 基 準 クロックの 設 定 情 報 を 取 得 します。<br />

23 UcntSetTriggerConfig 外 部 トリガを 設 定 します。<br />

24 UcntGetTriggerConfig 外 部 トリガの 設 定 情 報 を 取 得 します。<br />

25 UcntSetTriggerChannel 外 部 トリガチャンネルを 設 定 します。<br />

26 UcntGetTriggerChannel 外 部 トリガチャンネルの 設 定 情 報 を 取 得 します。<br />

27 UcntSetComparatorConfig 一 致 検 出 条 件 を 設 定 します。<br />

28 UcntGetComparatorConfig 一 致 検 出 条 件 の 設 定 情 報 を 取 得 します。<br />

29 UcntSetFilter デジタルフィルタを 設 定 します。<br />

30 UcntGetFilter デジタルフィルタの 設 定 情 報 を 取 得 します。<br />

カウンタ 設 定 / 取 得<br />

31 UcntSetCounter カウンタにプリロード 値 を 設 定 します。<br />

32 UcntReadCounter カウンタを 読 み 出 します。<br />

33 UcntReadLatchCounter ラッチカウンタを 読 み 出 します。<br />

34 UcntSetComparator 比 較 カウンタを 設 定 します。<br />

35 UcntGetComparator 比 較 カウンタの 設 定 情 報 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

17


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

ステータス 取 得<br />

36 UcntGetStatus カウンタステータス 情 報 を 取 得 します。<br />

サンプリング<br />

37 UcntSetSamplingConfig サンプリング 条 件 を 設 定 します。<br />

38 UcntGetSamplingConfig サンプリング 条 件 の 設 定 情 報 を 取 得 します。<br />

39 UcntGetSamplingData 内 部 バッファからサンプリングデータを 取 得 します。<br />

40 UcntClearSamplingData 内 部 バッファのサンプリングデータをクリアします。<br />

41 UcntGetSamplingStatus サンプリングステータス 情 報 を 取 得 します。<br />

スタート/ストップ<br />

42 UcntStartCounter カウントを 開 始 します。<br />

43 UcntStopCounter カウントを 停 止 します。<br />

44 UcntLatchCounter カウンタをラッチします。<br />

汎 用 入 出 力<br />

45 UcntSetDOEnable 汎 用 出 力 の 許 可 設 定 を 行 います。<br />

46 UcntGetDOEnable 汎 用 出 力 の 許 可 設 定 情 報 を 取 得 します。<br />

47 UcntInputDI 汎 用 入 力 の 状 態 を 取 得 します。<br />

48 UcntOutputDO 汎 用 出 力 を 制 御 します。<br />

割 り 込 み 設 定 / 取 得<br />

49 UcntSetEventMask イベントマスクを 設 定 します。<br />

50 UcntGetEventMask イベントマスクの 設 定 情 報 を 取 得 します。<br />

51 UcntSetEvent イベントコールバック 関 数 、メッセージを 登 録 します。<br />

52 UcntKillEvent イベントコールバック 関 数 、メッセージを 解 除 します。<br />

内 部 同 期 設 定<br />

53 UcntOutputSync 内 部 同 期 出 力 を 制 御 します。<br />

(PCI-632302 でのみ 使 用 できます。)<br />

OUTA/OUTB 出 力 設 定<br />

54 UcntOutputOUTAB OUTA,OUTB の 出 力 を 制 御 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

18


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

4.2 関 数 個 別 説 明 ( 万 能 カウンタ)<br />

1. UcntOpen<br />

【 機 能 】<br />

万 能 カウンタのオープンを 行 い、 以 後 のボードへのアクセスを 行 えるようにします。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntOpen(<br />

int nDevice // デバイス 番 号<br />

);<br />

●Kylix<br />

function UcntOpen(<br />

nDevice: Integer // デバイス 番 号<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

制 御 を 行 うボードのデバイス 番 号 を 指 定 します。<br />

Linux 上 の 各 ボードのデバイス 番 号 は、デバイス 番 号 設 定 ユーティリティを 使 用 して 設 定<br />

します。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nDevice;<br />

int nRet;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

●Kylix<br />

var<br />

nDevice: Integer;<br />

nRet: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

デバイス 番 号 「1」のデバイスをオープンします。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

19


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

2. UcntClose<br />

【 機 能 】<br />

万 能 カウンタをクローズします。<br />

デバイスアクセスのために 使 用 されていた 各 種 リソースの 解 放 を 行 い、 以 後 のデバイスへのア<br />

クセスを 禁 止 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntClose(<br />

int nDevice // デバイス 番 号<br />

);<br />

●Kylix<br />

function UcntClose (<br />

nDevice: Integer // デバイス 番 号<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したデバイス 番 号 を 指 定 してください。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 備 考 】<br />

再 度 、デバイスへのアクセスを 行 う 場 合 にはオープン 処 理 (UcntOpen 関 数 )を 呼 び 出 してくださ<br />

い。<br />

サンプリング 中 に 本 関 数 を 実 行 した 場 合 、サンプリング 動 作 を 停 止 します。<br />

デバイスクローズ 後 、 各 種 設 定 はクリアされます。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntClose(nDevice);<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

20


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntClose(nDevice);<br />

デバイス 番 号 「1」のデバイスのクローズ 処 理 を 行 います。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

21


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

3. UcntGetDeviceInfo<br />

【 機 能 】<br />

万 能 カウンタのデバイス 情 報 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetDeviceInfo(<br />

int nDevice, // デバイス 番 号<br />

PUCNTDEVICEINFO pDeviceInfo // UCNTDEVICEINFO 構 造 体 への<br />

// ポインタ<br />

);<br />

●Kylix<br />

function UcntGetDeviceInfo (<br />

nDevice: Integer; // デバイス 番 号<br />

var pDeviceInfo: UCNTDEVICEINFO // UCNTDEVICEINFO 構 造 体 への<br />

// 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したデバイス 番 号 を 指 定 してください。<br />

pDeviceInfo<br />

取 得 したデバイス 情 報 を 格 納 する UCNTDEVICEINFO 構 造 体 へのポインタを 指 定 してくださ<br />

い。<br />

構 造 体 の 説 明 については、『4.5 構 造 体 』をご 参 照 ください。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

UCNTDEVICEINFO DeviceInfo;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetDeviceInfo(nDevice, &DeviceInfo);<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

22


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

DeviceInfo: UCNTDEVICEINFO;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntGetDeviceInfo(nDevice, DeviceInfo);<br />

デバイス 番 号 「1」のデバイスのデバイス 情 報 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

23


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

4. UcntReset<br />

【 機 能 】<br />

各 種 設 定 の 初 期 化 、カウンタのクリアを 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntReset(<br />

int nDevice, // デバイス 番 号<br />

unsigned long dwChSel, // チャンネル 選 択<br />

unsigned long dwMode // リセット 項 目<br />

);<br />

●Kylix<br />

function UcntReset(<br />

nDevice: Integer; // デバイス 番 号<br />

dwChSel: Dword; // チャンネル 選 択<br />

dwMode: Dword // リセット 項 目<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したデバイス 番 号 を 指 定 してください。<br />

dwChSel<br />

各 種 設 定 の 初 期 化 、カウンタのクリアを 行 うチャンネルを 指 定 してください。<br />

ビット bit31~4 bit3 bit2 bit1 bit0<br />

内 容 予 約 CH4 CH3 CH2 CH1<br />

該 当 するビットに“1”を 指 定 してチャンネル 指 定 を 行 います。<br />

複 数 チャンネルの 指 定 が 可 能 です。<br />

例 )CH1~CH4 の 4 チャンネル:Fh を 指 定<br />

dwMode<br />

リセット 項 目 を 指 定 してください。<br />

識 別 子<br />

意 味<br />

IFUCNT_RESET_DEVICE 動 作 設 定 リセット<br />

指 定 チャンネルの 動 作 設 定 がリセットされデフォルト 値<br />

に 設 定 されます。<br />

サンプリング 中 の 場 合 はサンプリングを 停 止 します。<br />

IFUCNT_RESET_COUNTER カウンタクリア<br />

カウンタ、ラッチカウンタ、カウンタ FIFO、ステータス<br />

をクリアします。<br />

該 当 する 識 別 子 を 指 定 してリセットを 行 います。<br />

動 作 設 定 リセットとカウンタクリアを 同 時 に 実 行 する 場 合 には、それぞれの 識 別 子 を OR<br />

で 指 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

24


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntReset(nDevice, 0x01, IFUCNT_RESET_DEVICE | IFUCNT_RESET_COUNTER);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntReset(nDevice, $01, IFUCNT_RESET_DEVICE or IFUCNT_RESET_COUNTER);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 の 初 期 化 とカウンタリセットを 行 います。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

25


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

5. UcntSetPulseCountMode<br />

【 機 能 】<br />

パルスカウントモードに 設 定 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntSetPulseCountMode(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long dwCountMode, // カウントモード<br />

unsigned long dwLoadMode, // プリロードモード<br />

unsigned long dwLatchMode // ラッチモード<br />

);<br />

●Kylix<br />

function UcntSetPulseCountMode(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

dwCountMode: Dword; // カウントモード<br />

dwLoadMode: Dword; // プリロードモード<br />

dwLatchMode: Dword // ラッチモード<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

dwCountMode<br />

パルスカウントのモードとカウント 方 向 の 識 別 子 を 論 理 和 で 指 定 してください。<br />

カウント 方 向 を 省 略 した 場 合 には、デフォルトで 通 常 方 向 が 選 択 されます。<br />

カウントモード<br />

識 別 子<br />

カウントモード<br />

IFUCNT_COUNT_P_DIR_1 方 向 付 き 単 相 パルスカウントモード 1 逓 倍<br />

IFUCNT_COUNT_P_DIR_2 方 向 付 き 単 相 パルスカウントモード 2 逓 倍<br />

IFUCNT_COUNT_U_D_1 UP/DOWN パルスカウントモード 1 逓 倍<br />

IFUCNT_COUNT_PHASE_1 位 相 差 パルスカウントモード 1 逓 倍<br />

IFUCNT_COUNT_PHASE_2 位 相 差 パルスカウントモード 2 逓 倍<br />

IFUCNT_COUNT_PHASE_4 位 相 差 パルスカウントモード 4 逓 倍<br />

IFUCNT_COUNT_INTERNAL_CLOCK 内 部 基 準 クロックカウントモード<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

26


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

カウント 方 向<br />

識 別 子<br />

IFUCNT_DIR_NORMAL<br />

IFUCNT_DIR_REVERS<br />

内 容<br />

通 常 方 向 (カウントアップ)<br />

リバース 方 向 (カウントダウン)<br />

dwLoadMode<br />

プリロードモード 設 定 値 を 指 定 してください。<br />

ビット bit31~6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 CLC1 CLC0 L1P ZP CLS1 CLS0<br />

CLS1,CLS0:カウンタ 外 部 ロード(クリア) 条 件 を 指 定 します。<br />

CLS1 CLS0 内 容<br />

0 0 外 部 ロード 無 効<br />

0 1 Z 相 有 効 時<br />

1 0 LA と Z 相 が 共 に 有 効 時<br />

1 1 設 定 禁 止<br />

ZP:Z 相 の 論 理 を 指 定 します。<br />

ZP<br />

内 容<br />

0 Z 相 通 常 ( 立 ち 上 がり、“High”で 有 効 )<br />

1 Z 相 反 転 ( 立 ち 下 がり、“Low”で 有 効 )<br />

LAP:LA の 極 性 を 指 定 します。<br />

LA<br />

内 容<br />

0 LA 相 通 常 ( 立 ち 下 がり、“Low”で 有 効 )<br />

1 LA 相 反 転 ( 立 ち 上 がり、“High”で 有 効 )<br />

CLC1,CLC0: 外 部 ロード(クリア)モードを 指 定 します。<br />

CLC1 CLC0 内 容<br />

0 0 非 同 期 エッジ<br />

0 1 同 期 エッジ<br />

1 0 非 同 期 レベル<br />

1 1 設 定 禁 止<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

27


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

dwLatchMode<br />

ラッチモード 設 定 値 を 指 定 してください。<br />

ビット<br />

bit31~16<br />

内 容<br />

予 約<br />

ビット bit15 bit14 bit13~bit8<br />

内 容 SYNC2 SYNC1 予 約<br />

ビット bit7~8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 CKL<br />

LOAD<br />

EXL<br />

LOAD<br />

予 約 CKL LBF<br />

LT<br />

LBR<br />

LT<br />

LAF<br />

LT<br />

LAR<br />

LT<br />

LARLT:LA 立 ち 上 がりでのラッチ 設 定 を 指 定 します。<br />

LAFLT:LA 立 ち 下 がりでのラッチ 設 定 を 指 定 します。<br />

LBRLT:LB 立 ち 上 がりでのラッチ 設 定 を 指 定 します。<br />

LBFLT:LB 立 ち 下 がりでのラッチ 設 定 を 指 定 します。<br />

LBFLT、LBRLT、LAFLT、LARLT 内 容<br />

0 無 効<br />

1 有 効<br />

CKL: 内 部 基 準 クロックによるラッチ 設 定 を 指 定 します。<br />

CKL 内 容<br />

0 無 効<br />

1 有 効<br />

EXLLOAD: 外 部 ラッチ 後 のカウンタロード 設 定 を 指 定 します。<br />

EXLLOAD 内 容<br />

0 ロードしない<br />

1 ロードする<br />

CKLLOAD: 内 部 基 準 クロックラッチ 後 のカウンタロード 設 定 を 指 定 します。<br />

CKLLOAD 内 容<br />

0 ロードしない<br />

1 ロードする<br />

SYNC1: 内 部 同 期 ライン 1 によるラッチ 設 定 を 指 定 します。<br />

SYNC1 内 容<br />

0 無 効<br />

1 有 効<br />

SYNC2: 内 部 同 期 ライン 2 によるラッチ 設 定 を 指 定 します。<br />

SYNC2 内 容<br />

0 無 効<br />

1 有 効<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

28


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 備 考 】<br />

●パルスカウントモードの 概 要 について<br />

パルスカウントモードでは、 各 チャンネルのA・B 相 からの 外 部 パルスと、 内 部 基 準 クロック<br />

(UcntSetBaseClock 関 数 で 設 定 )のカウントを 行 います。<br />

外 部 ロード 機 能 はZ 相 またはZ 相 +LAの 入 力 タイミングで、プリロードデータをカウンタにロ<br />

ードします。プリロードデータを 0( 初 期 値 )に 設 定 している 場 合 にはクリア 動 作 となります。<br />

プリロードデータの 設 定 は UcntSetLoadData 関 数 で 行 います。<br />

また、LA、LB による 外 部 ラッチや、 内 部 基 準 クロックによる 一 定 周 期 ラッチの 設 定 を 行 うこと<br />

が 可 能 です。<br />

<br />

方 向 付 き 単 相 パルス<br />

UP/DOWN パルス<br />

位 相 差 パルス<br />

外 部 パルス<br />

A<br />

B<br />

A<br />

B<br />

A<br />

B<br />

外 部 ロード(クリア) Z<br />

外 部 ラッチ<br />

LA<br />

スタート<br />

ストップ<br />

スタート/ストップ<br />

LB<br />

カウント 値<br />

比 較 レジスタ B(500)<br />

350<br />

比 較 レジスタ A(200)<br />

リードレジスタ<br />

FIFO<br />

0<br />

350<br />

一 致 出 力 OUTA<br />

一 致 出 力 OUTB<br />

カウンタ=200<br />

200≦カウンタ≦500<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

29


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntSetPulseCountMode(nDevice, 1, IFUCNT_COUNT_PHASE_4, 0x01, 0x00);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntSetPulseCountMode(nDevice, 1, IFUCNT_COUNT_PHASE_4, $01, $00);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 をパルスカウントモード( 位 相 差 パルスカウン<br />

トモード 4 逓 倍 、Z 相 立 ち 上 がりエッジ 入 力 によるカウンタクリア(ロード)、 外 部 ラッチなし)<br />

に 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

30


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

6. UcntGetPulseCountMode<br />

【 機 能 】<br />

パルスカウントモードの 設 定 情 報 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetPulseCountMode(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long* pdwCountMode, // カウントモード 取 得 変 数<br />

// へのポインタ<br />

unsigned long* pdwLoadMode, // プリロードモード 取 得 変 数<br />

// へのポインタ<br />

unsigned long* pdwLatchMode // ラッチモード 取 得 変 数<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function UcntGetPulseCountMode(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

var pdwCountMode: Dword; // カウントモード 取 得 変 数<br />

// への 参 照 渡 し<br />

var pdwLoadMode: Dword; // プリロードモード 取 得 変 数<br />

// への 参 照 渡 し<br />

var pdwLatchMode: Dword // ラッチモード 取 得 変 数<br />

// への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 情 報 を 取 得 するチャンネルを 指 定 してください。<br />

pdwCountMode<br />

カウントモード 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

変 数 にはカウントモードとカウント 方 向 の 識 別 子 が 論 理 和 で 指 定 されます。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

31


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

カウントモード<br />

識 別 子<br />

IFUCNT_COUNT_P_DIR_1<br />

IFUCNT_COUNT_P_DIR_2<br />

IFUCNT_COUNT_U_D_1<br />

IFUCNT_COUNT_PHASE_1<br />

IFUCNT_COUNT_PHASE_2<br />

IFUCNT_COUNT_PHASE_4<br />

IFUCNT_COUNT_INTERNAL_CLOCK<br />

カウント 方 向<br />

識 別 子<br />

IFUCNT_DIR_NORMAL<br />

IFUCNT_DIR_REVERS<br />

カウントモード<br />

方 向 付 き 単 相 パルスカウントモード 1 逓 倍<br />

方 向 付 き 単 相 パルスカウントモード 2 逓 倍<br />

UP/DOWN パルスカウントモード 1 逓 倍<br />

位 相 差 パルスカウントモード 1 逓 倍<br />

位 相 差 パルスカウントモード 2 逓 倍<br />

位 相 差 パルスカウントモード 4 逓 倍<br />

内 部 基 準 クロックカウントモード<br />

内 容<br />

通 常 方 向 (カウントアップ)<br />

リバース 方 向 (カウントダウン)<br />

pdwLoadMode<br />

プリロードモード 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

ビット bit31~6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 CLC1 CLC0 L1P ZP CLS1 CLS0<br />

CLS1,CLS0:カウンタ 外 部 ロード(クリア) 条 件 を 取 得 します。<br />

CLS1 CLS0 内 容<br />

0 0 外 部 ロード 無 効<br />

0 1 Z 相 有 効 時<br />

1 0 LA と Z 相 が 有 効 時<br />

1 1 設 定 禁 止<br />

ZP:Z 相 の 論 理 を 取 得 します。<br />

ZP<br />

内 容<br />

0 Z 相 通 常 ( 立 ち 上 がり、“High”で 有 効 )<br />

1 Z 相 反 転 ( 立 ち 下 がり、“Low”で 有 効 )<br />

LAP:LA の 極 性 を 取 得 します。<br />

LA<br />

内 容<br />

0 LA 相 通 常 ( 立 ち 下 がり、“Low”で 有 効 )<br />

1 LA 相 反 転 ( 立 ち 上 がり、“High”で 有 効 )<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

32


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

CLC1,CLC0: 外 部 ロード(クリア)モードを 取 得 します。<br />

CLC1 CLC0 内 容<br />

0 0 非 同 期 エッジ<br />

0 1 同 期 エッジ<br />

1 0 非 同 期 レベル<br />

1 1 設 定 禁 止<br />

pdwLatchMode<br />

ラッチモード 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

ビット bit31~8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 CKL<br />

LOAD<br />

EXL<br />

LOAD<br />

予 約 CKL LBF<br />

LT<br />

LBR<br />

LT<br />

LAF<br />

LT<br />

LAR<br />

LT<br />

LARLT:LA 立 ち 上 がりでのラッチ 設 定 を 取 得 します。<br />

LAFLT:LA 立 ち 下 がりでのラッチ 設 定 を 取 得 します。<br />

LBRLT:LB 立 ち 上 がりでのラッチ 設 定 を 取 得 します。<br />

LBFLT:LB 立 ち 下 がりでのラッチ 設 定 を 取 得 します。<br />

LBFLT、LBRLT、LAFLT、LARLT 内 容<br />

0 無 効<br />

1 有 効<br />

CKL: 内 部 基 準 クロックによるラッチ 設 定 を 取 得 します。<br />

CKL 内 容<br />

0 無 効<br />

1 有 効<br />

EXLLOAD: 外 部 ラッチ 後 のカウンタロード 設 定 を 取 得 します。<br />

EXLLOAD 内 容<br />

0 ロードしない<br />

1 ロードする<br />

CKLLOAD: 内 部 基 準 クロックラッチ 後 のカウンタロード 設 定 を 取 得 します。<br />

CKLLOAD 内 容<br />

0 ロードしない<br />

1 ロードする<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

33


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwCountMode;<br />

unsigned long dwLoadMode;<br />

unsigned long dwLatchMode;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetPulseCountMode(nDevice, 2, &dwCountMode, &dwLoadMode, &dwLatchMode);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwCountMode: Dword;<br />

dwLoadMode: Dword;<br />

dwLatchMode: Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntGetPulseCountMode(nDevice, 2, dwCountMode, dwLoadMode, dwLatchMode);<br />

デバイス 番 号 「1」のデバイスのチャンネル 2 のパルスカウントモード 設 定 情 報 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

34


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

7. UcntSetFreqAvgMode<br />

【 機 能 】<br />

平 均 周 波 数 測 定 モードに 設 定 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntSetFreqAvgMode(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long dwCountMode, // カウントモード<br />

unsigned long dwClock // 基 準 クロック<br />

);<br />

●Kylix<br />

function UcntSetFreqAvgMode(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

dwCountMode: Dword; // カウントモード<br />

dwClock: Dword // 基 準 クロック<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

dwCountMode<br />

パルスカウントのモードとカウント 方 向 の 識 別 子 を 論 理 和 で 指 定 してください。<br />

カウント 方 向 を 省 略 した 場 合 には、デフォルトで 通 常 方 向 が 選 択 されます。<br />

カウントモード<br />

識 別 子<br />

カウントモード<br />

IFUCNT_COUNT_P_DIR_1 方 向 付 き 単 相 パルスカウントモード 1 逓 倍<br />

IFUCNT_COUNT_P_DIR_2 方 向 付 き 単 相 パルスカウントモード 2 逓 倍<br />

IFUCNT_COUNT_U_D_1 UP/DOWN パルスカウントモード 1 逓 倍<br />

IFUCNT_COUNT_PHASE_1 位 相 差 パルスカウントモード 1 逓 倍<br />

IFUCNT_COUNT_PHASE_2 位 相 差 パルスカウントモード 2 逓 倍<br />

IFUCNT_COUNT_PHASE_4 位 相 差 パルスカウントモード 4 逓 倍<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

35


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

カウント 方 向<br />

識 別 子<br />

IFUCNT_DIR_NORMAL<br />

IFUCNT_DIR_REVERS<br />

内 容<br />

通 常 方 向 (カウントアップ)<br />

リバース 方 向 (カウントダウン)<br />

dwClock<br />

基 準 クロック 設 定 値 を 指 定 してください。<br />

設 定 範 囲 :0 ~ 16,777,215(FFFFFFh)<br />

dwClock 基 準 クロック 周 期<br />

0 停 止<br />

1 100 [ns]<br />

・<br />

・<br />

・<br />

・<br />

・<br />

・<br />

16,777,215 1.6777215 [s]<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

36


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 備 考 】<br />

● 平 均 周 波 数 測 定 モードの 概 要 について<br />

平 均 周 波 数 測 定 モードでは A・B 相 からの 入 力 されたパルスの 平 均 周 波 数 をカウントします。<br />

具 体 的 な 測 定 方 法 としては、dwClock で 指 定 した 内 部 基 準 クロック 周 期 のタイミングでカウン<br />

タラッチ(&クリア)を 行 うことで、 一 定 時 間 内 に 入 力 されたパルスをカウントして 平 均 周 波<br />

数 を 取 得 します。<br />

ラッチ 時 のデータが 一 周 期 分 のデータとなるため、カウンタ 値 の 取 得 には<br />

UcntReadLatchCounter 関 数 を 使 用 してください。(UcntReadCounter 関 数 では 測 定 途 中 のカウ<br />

ント 値 を 取 得 してしまう 為 、 無 意 味 なデータを 取 得 する 可 能 性 があります。)<br />

また、 最 終 的 な 平 均 周 波 数 [Hz]は 下 記 の 式 で 算 出 します。<br />

平 均 周 波 数 [Hz] = カウントクロック 数 / 基 準 クロック 周 期<br />

基 準 クロック 周 期 に 1[s]を 指 定 した 場 合 には、UcntReadLatchCounter 関 数 にて 取 得 したカウン<br />

ト 値 がそのまま 周 波 数 となります。( 基 準 クロックは 100[ns] 単 位 で 設 定 可 能 です。)<br />

カウントスタート 時 (UcntStartCount 関 数 )はソフトスタート(IFUCNT_CMD_START)を 指 定 し<br />

てください。<br />

< 平 均 周 波 数 測 定 モードのタイミングチャート><br />

方 向 付 き 単 相 パルス<br />

UP/DOWN パルス<br />

位 相 差 パルス<br />

外 部 パルス<br />

A<br />

B<br />

A<br />

B<br />

A<br />

B<br />

スタート<br />

LA<br />

内 部 基 準 クロック<br />

ソフトスタート<br />

カウント 値<br />

600<br />

500<br />

比 較 レジスタ B(650)<br />

比 較 レジスタ A(550)<br />

400<br />

リードレジスタ<br />

FIFO<br />

クリア<br />

ラッチ<br />

クリア<br />

ラッチ<br />

クリア<br />

ラッチ<br />

0 400 500 600<br />

OUTA<br />

OUTB<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

37


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntSetFreqAvgMode(nDevice, 1, IFUCNT_COUNT_P_DIR_1, 100000);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntSetFreqAvgMode(nDevice, 1, IFUCNT_COUNT_P_DIR_1, 100000);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 を 平 均 周 波 数 測 定 モード( 方 向 付 き 単 層 パルス<br />

カウントモード 1 逓 倍 、 基 準 クロック 10[ms])に 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

38


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

8. UcntGetFreqAvgMode<br />

【 機 能 】<br />

平 均 周 波 数 測 定 モードの 設 定 情 報 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetFreqAvgMode(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long* pdwCountMode, // カウントモード 取 得 変 数<br />

// へのポインタ<br />

unsigned long* pdwClock // 基 準 クロック 取 得 変 数<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function UcntGetFreqAvgMode(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

var pdwCountMode: Dword; // カウントモード 取 得 変 数<br />

// への 参 照 渡 し<br />

var pdwClock: Dword // 基 準 クロック 取 得 変 数<br />

// への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

取 得 を 行 うチャンネルを 指 定 してください。<br />

pdwCountMode<br />

カウントモード 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

変 数 にはカウントモードとカウント 方 向 の 識 別 子 が 論 理 和 で 指 定 されます。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

39


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

カウントモード<br />

識 別 子<br />

IFUCNT_COUNT_P_DIR_1<br />

IFUCNT_COUNT_P_DIR_2<br />

IFUCNT_COUNT_U_D_1<br />

IFUCNT_COUNT_PHASE_1<br />

IFUCNT_COUNT_PHASE_2<br />

IFUCNT_COUNT_PHASE_4<br />

カウント 方 向<br />

識 別 子<br />

IFUCNT_DIR_NORMAL<br />

IFUCNT_DIR_REVERS<br />

カウントモード<br />

方 向 付 き 単 相 パルスカウントモード 1 逓 倍<br />

方 向 付 き 単 相 パルスカウントモード 2 逓 倍<br />

UP/DOWN パルスカウントモード 1 逓 倍<br />

位 相 差 パルスカウントモード 1 逓 倍<br />

位 相 差 パルスカウントモード 2 逓 倍<br />

位 相 差 パルスカウントモード 4 逓 倍<br />

内 容<br />

通 常 方 向 (カウントアップ)<br />

リバース 方 向 (カウントダウン)<br />

pdwClock<br />

基 準 クロック 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

設 定 範 囲 :0 ~ 16,777,215(FFFFFFh)<br />

dwClock 基 準 クロック 周 期<br />

0 停 止<br />

1 100 [ns]<br />

・<br />

・<br />

・<br />

・<br />

・<br />

・<br />

16,777,215 1.6777215 [s]<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

40


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwCountMode;<br />

unsigned long dwClock;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetFreqAvgMode(nDevice, 1, &dwCountMode, &dwClock);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwCountMode: Dword;<br />

dwClock: Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntGetFreqAvgMode(nDevice, 1, dwCountMode, dwClock);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 の 平 均 周 波 数 測 定 モード 設 定 情 報 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

41


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

9. UcntSetCycleMode<br />

【 機 能 】<br />

周 期 測 定 モードに 設 定 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntSetCycleMode(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long dwCountType, // 周 期 測 定 タイプ<br />

unsigned long dwClock // 基 準 クロック<br />

);<br />

●Kylix<br />

function UcntSetCycleMode(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

dwCountType: Dword; // 周 期 測 定 タイプ<br />

dwClock: Dword // 基 準 クロック<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

dwCountType<br />

周 期 測 定 タイプを 指 定 してください。<br />

識 別 子<br />

内 容<br />

IFUCNT_CYCLE_NORMAL<br />

パルス 周 期 を 測 定 します<br />

IFUCNT_CYCLE_HIGH<br />

High パルス 幅 を 測 定 します<br />

IFUCNT_CYCLE_LOW<br />

Low パルス 幅 を 測 定 します<br />

IFUCNT_CYCLE_HIGH_LOW High、Low パルス 幅 を 測 定 します<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

42


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

dwClock<br />

基 準 クロック 設 定 値 を 指 定 してください。<br />

設 定 範 囲 :0 ~ 16,777,215(FFFFFFh)<br />

dwClock 基 準 クロック 周 期<br />

0 停 止<br />

1 100 [ns]<br />

・<br />

・<br />

・<br />

・<br />

・<br />

・<br />

16,777,215 1.6777215 [s]<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 備 考 】<br />

● 周 期 測 定 モードの 概 要 について<br />

周 期 測 定 モードでは、 測 定 対 象 のパルスは LA から 入 力 して 周 期 測 定 を 行 います。<br />

具 体 的 な 測 定 方 法 としては、 内 部 基 準 クロックによるカウントを LA 信 号 の 立 ち 上 がりタイミ<br />

ングでラッチ(&クリア)することで、LA からの 入 力 パルスの 幅 をラッチカウンタから 取 得 し<br />

ます。<br />

dwClock で 指 定 した 内 部 クロックのカウント 値 が 測 定 周 期 となる 為 、 内 部 クロック 周 期 の 設 定<br />

が 短 いほど 周 期 測 定 の 精 度 が 良 くなります。(クロック 周 期 を 短 くすると、 測 定 可 能 な 最 大 周<br />

期 は 短 くなります。)<br />

ラッチ 時 のデータが 一 周 期 分 のデータとなるため、カウンタ 値 の 取 得 には<br />

UcntReadLatchCounter 関 数 を 使 用 してください。(UcntReadCounter 関 数 では 測 定 途 中 のカウ<br />

ント 値 を 取 得 してしまう 為 、 無 意 味 なデータを 取 得 する 可 能 性 があります。)<br />

最 終 的 なパルス 周 期 は 下 記 の 式 で 算 出 します。<br />

周 期 [s] = カウントクロック 数 × 基 準 クロック<br />

カウントスタート 時 (UcntStartCount 関 数 )は 外 部 スタートウェイト(トリガ 待 ち)<br />

(IFUCNT_CMD_EXWAIT)を 指 定 してください。<br />

スタート 関 数 の 実 行 後 、 最 初 の 入 力 パルス(LA)の 立 ち 上 がりでカウントを 開 始 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

43


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

< 周 期 数 測 定 のタイミングチャート><br />

スタート<br />

LA<br />

基 準 クロック<br />

カウント 値<br />

600<br />

500<br />

比 較 レジスタ B(650)<br />

比 較 レジスタ A(550)<br />

リードレジスタ<br />

FIFO<br />

クリア<br />

クリア<br />

クリア<br />

ラッチ<br />

ラッチ<br />

ラッチ<br />

0 500 500 600<br />

OUTA<br />

OUTB<br />

周 期 測 定 モードでは、LA 信 号 の 立 ち 上 がりから 次 の 立 ち 上 がりまでの 間 にカウントした 基 準 ク<br />

ロックのカウント 値 をラッチします。<br />

<br />

スタート ストップ スタート ストップ<br />

LA<br />

基 準 クロック<br />

カウント 値<br />

500<br />

400<br />

比 較 レジスタ B(600)<br />

比 較 レジスタ A(450)<br />

リードレジスタ<br />

FIFO<br />

クリア<br />

クリア<br />

ラッチ<br />

ラッチ<br />

0 400 500<br />

OUTA<br />

OUTB<br />

High パルス 幅 測 定 モードでは、LA 信 号 の 立 ち 上 がりから 立 ち 下 がりまでの 間 にカウントした<br />

基 準 クロックのカウント 値 をラッチします。<br />

Low パルス 幅 測 定 モードでは、LA 信 号 の 立 ち 下 がりから 立 ち 上 がりまでの 間 にカウントした 基<br />

準 クロックのカウント 値 をラッチします。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

44


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

<br />

スタート<br />

LA<br />

基 準 クロック<br />

カウント 値<br />

600<br />

400<br />

比 較 レジスタ B(650)<br />

比 較 レジスタ A(550)<br />

リードレジスタ<br />

FIFO<br />

クリア<br />

クリア<br />

クリア<br />

ラッチ<br />

ラッチ<br />

ラッチ<br />

0 400 600 500<br />

OUTA<br />

OUTB<br />

デューティ 比 測 定 モード(High/Low パルス 幅 測 定 モード)では、LA 信 号 の 全 ての 立 ち 上 がり<br />

と 立 ち 下 がりのエッジでカウント 値 をラッチ(&クリア)します。<br />

これにより、ラッチカウンタには High パルス 幅 と Low パルス 幅 の 値 が 交 互 にラッチされる 状<br />

態 となります。 両 方 のパルス 幅 の 比 率 からデューティ 比 を 測 定 することが 可 能 となります。<br />

測 定 したラッチカウント 値 がHighパルスとLowパルスのどちらを 示 しているかを 確 認 する 為<br />

に、UcntGetStatus 関 数 を 使 用 してカウントラッチ 時 のステータス 状 態 を 確 認 する 必 要 があり<br />

ます。<br />

ステータス 情 報 から、ラッチタイミングの 直 前 ・ 直 後 の LA 信 号 の 状 態 が 確 認 できる 為 、<br />

・LABEF(ラッチ 直 前 ):Low<br />

・LAAFT(ラッチ 直 後 ):High<br />

の 場 合 には、LA の 立 ち 上 がりによってラッチが 発 生 したことを 示 し、ラッチカウント 値 は Low<br />

パルスの 幅 となります。<br />

・LABEF(ラッチ 直 前 ):High<br />

・LAAFT(ラッチ 直 後 ):Low<br />

逆 の 場 合 には、LA の 立 ち 下 がりによってラッチが 発 生 した 事 を 示 す 為 、High パルス 幅 となり<br />

ます。<br />

LABEF、LAAFT の 値 が 変 化 していない 場 合 には、LA 信 号 以 外 の 要 因 でラッチが 発 生 した 事 を 示<br />

します。(High/Low パルス 幅 の 測 定 中 には、 無 効 なカウント 値 となります。)<br />

また、サンプリングの 設 定 (UcntSetSamplingConfig 関 数 )を 行 う 際 に、ステータス 情 報 を 付<br />

加 する 設 定 (IFUCNT_ADD_STATUS)にしている 場 合 には、カウンタラッチのタイミングでカウ<br />

ント 値 と 上 記 のステータス 情 報 を 同 時 に 取 得 することが 可 能 となっています。<br />

デューティ 比 測 定 を 行 う 場 合 には、このサンプリング 時 のステータス 取 得 機 能 をご 使 用 いただ<br />

くと 便 利 です。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

45


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntSetCycleMode(nDevice, 1, IFUCNT_CYCLE_HIGH, 10000);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntSetCycleMode(nDevice, 1, IFUCNT_CYCLE_HIGH, 10000);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 を 周 期 測 定 モード(High パルス 幅 測 定 モード、<br />

基 準 クロック 1[ms])に 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

46


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

10. UcntGetCycleMode<br />

【 機 能 】<br />

周 期 測 定 モード 設 定 情 報 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetCycleMode(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long* pdwCountType, // 周 期 測 定 タイプ 取 得 変 数<br />

// へのポインタ<br />

unsigned long* pdwClock // 基 準 クロック 取 得 変 数<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function UcntGetCycleMode(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

var pdwCountType: Dword; // 周 期 測 定 タイプ 取 得 変 数<br />

// への 参 照 渡 し<br />

var pdwClock: Dword // 基 準 クロック 取 得 変 数<br />

// への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

pdwCountType<br />

周 期 測 定 タイプ 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

識 別 子<br />

内 容<br />

IFUCNT_CYCLE_NORMAL<br />

パルス 周 期 を 測 定 します<br />

IFUCNT_CYCLE_HIGH<br />

High パルス 幅 を 測 定 します<br />

IFUCNT_CYCLE_LOW<br />

Low パルス 幅 を 測 定 します<br />

IFUCNT_CYCLE_HIGH_LOW High、Low パルス 幅 を 測 定 します<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

47


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

pdwClock<br />

基 準 クロック 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

設 定 範 囲 :0 ~ 16,777,215(FFFFFFh)<br />

dwClock 基 準 クロック 周 期<br />

0 停 止<br />

1 100 [ns]<br />

・<br />

・<br />

・<br />

・<br />

・<br />

・<br />

16,777,215 1.6777215 [s]<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwCountType;<br />

unsigned long dwClock;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetCycleMode(nDevice, 2, &dwCountType, &dwClock);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwCountType: Dword;<br />

dwClock: Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntGetCycleMode(nDevice, 2, dwCountType, dwClock);<br />

デバイス 番 号 「1」のデバイスのチャンネル 2 の 周 期 測 定 モード 設 定 情 報 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

48


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

11. UcntSetPhaseDiffMode<br />

【 機 能 】<br />

位 相 差 幅 測 定 モードに 設 定 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntSetPhaseDiffMode(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long dwCountType, // 位 相 差 幅 測 定 タイプ<br />

unsigned long dwClock // 基 準 クロック<br />

);<br />

●Kylix<br />

function UcntSetPhaseDiffMode(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

dwCountType: Dword; // 位 相 差 幅 測 定 タイプ<br />

dwClock: Dword // 基 準 クロック<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

dwCountType<br />

位 相 差 幅 測 定 タイプを 指 定 してください。<br />

識 別 子<br />

内 容<br />

IFUCNT_PHASE_DIFF_NORMAL LA-LB 間 の 位 相 差 幅 を 測 定 します<br />

IFUCNT_PHASE_DIFF_ALL LA,LB の 全 位 相 差 幅 を 測 定 します<br />

dwClock<br />

基 準 クロック 設 定 値 を 指 定 してください。<br />

設 定 範 囲 :0 ~ 16,777,215(FFFFFFh)<br />

dwClock 基 準 クロック 周 期<br />

0 停 止<br />

1 100 [ns]<br />

・<br />

・<br />

・<br />

・<br />

・<br />

・<br />

16,777,215 1.6777215 [s]<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

49


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 備 考 】<br />

● 位 相 差 幅 測 定 モードの 概 要 について<br />

位 相 差 幅 測 定 モードでは、LA・LB からの 入 力 パルスの 位 相 差 幅 を 測 定 します。<br />

具 体 的 な 測 定 方 法 としては、 内 部 基 準 クロックによるカウントを LA の 立 ち 上 がりタイミング<br />

でカウントスタートし、LB の 立 ち 上 がりでラッチ(&クリア)することで、LA 入 力 から LB の<br />

入 力 までの 幅 をラッチカウンタから 取 得 します。<br />

dwClock で 指 定 した 内 部 クロックのカウント 値 が 測 定 幅 となる 為 、 内 部 クロック 周 期 の 設 定 が<br />

短 いほど 位 相 差 幅 測 定 の 精 度 が 良 くなります。(クロック 周 期 を 短 くすると、 測 定 可 能 な 最 大<br />

位 相 差 幅 は 短 くなります。)<br />

ラッチ 時 のデータが 一 周 期 分 のデータとなるため、カウンタ 値 の 取 得 には<br />

UcntReadLatchCounter 関 数 を 使 用 してください。(UcntReadCounter 関 数 では 測 定 途 中 のカウ<br />

ント 値 を 取 得 してしまう 為 、 無 意 味 なデータを 取 得 する 可 能 性 があります。)<br />

位 相 差 幅 は 下 記 の 式 で 算 出 できます。<br />

位 相 差 幅 [s] = カウントクロック 数 × 基 準 クロック<br />

カウントスタート 時 (UcntStartCount 関 数 )は 外 部 スタートウェイト(トリガ 待 ち)<br />

(IFUCNT_CMD_EXWAIT)を 指 定 してください。<br />

スタート 関 数 の 実 行 後 、 最 初 の 入 力 パルス(LA)の 立 ち 上 がりでカウントを 開 始 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

50


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

< 位 相 差 幅 測 定 モードのタイミングチャート><br />

スタート<br />

LA<br />

ストップ<br />

LB<br />

基 準 クロック<br />

スタート<br />

ストップ<br />

カウント 値<br />

600<br />

500<br />

比 較 レジスタ B(700)<br />

比 較 レジスタ A(550)<br />

リードレジスタ<br />

FIFO<br />

クリア<br />

クリア<br />

ラッチ<br />

ラッチ<br />

0 500 600<br />

OUTA<br />

OUTB<br />

位 相 差 幅 測 定 モードでは、LA 信 号 の 立 ち 上 がりでカウントを 開 始 し、LB 信 号 の 立 ち 上 がりで<br />

カウントをストップ・ラッチ(&クリア)します。<br />

< 全 位 相 差 幅 測 定 モードのタイミングチャート><br />

スタート<br />

LA<br />

LB<br />

基 準 クロック<br />

カウント 値<br />

600<br />

500<br />

400<br />

比 較 レジスタ B(650)<br />

比 較 レジスタ A(550)<br />

リードレジスタ<br />

FIFO<br />

クリア<br />

ラッチ<br />

クリア<br />

ラッチ<br />

クリア<br />

ラッチ<br />

クリア クリア<br />

ラッチ ラッチ<br />

クリア<br />

ラッチ<br />

0 500 500 500 600 400 500<br />

OUTA<br />

OUTB<br />

全 位 相 差 幅 測 定 モードでは、LA 信 号 の 立 ち 上 がりでカウントを 開 始 し、LA 信 号 の 立 ち 上 がり・<br />

立 ち 下 がりと LB 信 号 の 立 ち 上 がり・ 立 ち 下 がりでカウンタ 値 をラッチ(&クリア)します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

51


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

測 定 したラッチカウント 値 がどの 信 号 のラッチによるものかを 確 認 する 為 に、<br />

UcntGetStatus 関 数 を 使 用 してカウントラッチ 時 のステータス 状 態 を 確 認 する 必 要 があります。<br />

ステータス 情 報 から、ラッチタイミングの 直 前 ・ 直 後 の LA 信 号 の 状 態 が 確 認 できる 為 、<br />

・LABEF(ラッチ 直 前 ):Low<br />

・LAAFT(ラッチ 直 後 ):High<br />

の 場 合 には、LA の 立 ち 上 がりによってラッチが 発 生 したことを 示 します。<br />

・LABEF(ラッチ 直 前 ):High<br />

・LAAFT(ラッチ 直 後 ):Low<br />

逆 の 場 合 には、LA の 立 ち 下 がりによってラッチが 発 生 した 事 を 示 します。<br />

(LB のステータスについても 同 様 に 確 認 できます。)<br />

また、サンプリングの 設 定 (UcntSetSamplingConfig 関 数 )を 行 う 際 に、ステータス 情 報 を 付<br />

加 する 設 定 (IFUCNT_ADD_STATUS)にしている 場 合 には、カウンタラッチのタイミングでカウ<br />

ント 値 と 上 記 のステータス 情 報 を 同 時 に 取 得 することが 可 能 となっています。<br />

全 位 相 差 幅 測 定 を 行 う 場 合 には、このサンプリング 時 のステータス 取 得 機 能 をご 使 用 いただく<br />

と 便 利 です。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntSetPhaseDiffMode(nDevice, 1, IFUCNT_PHASE_DIFF_NORMAL, 1000);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntSetPhaseDiffMode(nDevice, 1, IFUCNT_PHASE_DIFF_NORMAL, 1000);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 を 位 相 差 幅 測 定 モード(LA-LB 間 位 相 差 幅 測 定 モ<br />

ード、 基 準 クロック 100[us])に 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

52


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

12. UcntGetPhaseDiffMode<br />

【 機 能 】<br />

位 相 差 幅 測 定 モード 設 定 情 報 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetPhaseDiffMode(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long* pdwCountType, // 位 相 差 幅 測 定 タイプ 取 得 変 数<br />

// へのポインタ<br />

unsigned long* pdwClock // 基 準 クロック 取 得 変 数<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function UcntGetPhaseDiffMode(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

var pdwCountType: Dword; // 位 相 差 幅 測 定 タイプ 取 得 変 数<br />

// への 参 照 渡 し<br />

var pdwClock: Dword // 基 準 クロック 取 得 変 数<br />

// への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 情 報 を 取 得 するチャンネルを 指 定 してください。<br />

pdwCountType<br />

位 相 差 幅 測 定 タイプ 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

識 別 子<br />

内 容<br />

IFUCNT_PHASE_DIFF_NORMAL LA-LB 間 の 位 相 差 幅 を 測 定 します<br />

IFUCNT_PHASE_DIFF_ALL LA,LB の 全 位 相 差 幅 を 測 定 します<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

53


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

dwClock<br />

基 準 クロック 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

設 定 範 囲 :0 ~ 16,777,215(FFFFFFh)<br />

dwClock 基 準 クロック 周 期<br />

0 停 止<br />

1 100 [ns]<br />

・<br />

・<br />

・<br />

・<br />

・<br />

・<br />

16,777,215 1.6777215 [s]<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwCountType;<br />

unsigned long dwClock;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetPhaseDiffMode(nDevice, 1, &dwCountType, &dwClock);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwCountType: Dword;<br />

dwClock: Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntGetPhaseDiffMode(nDevice, 1, dwCountType, dwClock);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 の 位 相 差 幅 測 定 モード 設 定 情 報 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

54


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

13. UcntSetTimerMode<br />

【 機 能 】<br />

タイマモードに 設 定 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntSetTimerMode(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long dwClock // タイマクロック<br />

);<br />

●Kylix<br />

function UcntSetTimerMode(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

dwClock: Dword // タイマクロック<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

dwClock<br />

タイマクロック 設 定 値 を 指 定 してください。<br />

設 定 範 囲 :0 ~ 16,777,215(FFFFFFh)<br />

dwClock 基 準 クロック 周 期<br />

0 停 止<br />

1 100 [ns]<br />

・<br />

・<br />

・<br />

・<br />

・<br />

・<br />

16,777,215 1.6777215 [s]<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

55


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 備 考 】<br />

●タイマモードの 概 要 について<br />

タイマモードでは、 内 部 基 準 クロックをカウントすることで、 時 間 計 測 を 行 います。<br />

カウンタ 値 の 取 得 方 法 は、UcntReadCounter 関 数 と UcntReadLatchCounter 関 数 のどちらでもか<br />

まいません。 用 途 に 合 わせてご 使 用 下 さい。(ラッチカウンタを 使 用 する 場 合 には、 任 意 のタ<br />

イミングでカウントラッチを 行 う 必 要 があります。)<br />

dwClock に 指 定 した 内 部 基 準 クロック 周 期 で、カウンタがカウントアップします。<br />

UcntSetComparatorConfig 関 数 を 使 用 してカウンタ 一 致 検 出 のイベントを 設 定 し、 一 致 検 出 時<br />

にカウンタクリアを 行 う 設 定 にすることで、 指 定 した 時 間 周 期 でインターバルタイマイベント<br />

を 発 生 させることも 可 能 です。<br />

<br />

内 部 基 準 クロック<br />

(100ns~1.6777215s)<br />

×<br />

32bit カウンタ<br />

(0~4,294,967,295)<br />

比 較 レジスタA<br />

比 較 レジスタB<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntSetTimerMode(nDevice, 1, 10000000);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntSetTimerMode(nDevice, 1, 10000000);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 をタイマモード(タイマクロック 1[s])に 設 定<br />

します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

56


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

14. UcntGetTimerMode<br />

【 機 能 】<br />

タイマモード 設 定 情 報 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetTimerMode(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long* pdwClock // タイマクロック 取 得 変 数<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function UcntGetTimerMode(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

var pdwClock: Dword // タイマクロック 取 得 変 数<br />

// への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 情 報 を 取 得 するチャンネルを 指 定 してください。<br />

pdwClock<br />

タイマクロック 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

設 定 範 囲 :0 ~ 16,777,215(FFFFFFh)<br />

dwClock 基 準 クロック 周 期<br />

0 停 止<br />

1 100 [ns]<br />

・<br />

・<br />

・<br />

・<br />

・<br />

・<br />

16,777,215 1.6777215 [s]<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

57


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwClock;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetTimerMode(nDevice, 1,&dwClock);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwClock: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntGetTimerMode(nDevice, 1, dwClock);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 のタイマモード 設 定 情 報 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

58


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

15. UcntSetFreqDividerMode<br />

【 機 能 】<br />

分 周 器 モードに 設 定 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntSetFreqDividerMode(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long dwDivisor, // 分 周 周 期 (パルス 数 )<br />

unsigned long dwPulseWide, // 出 力 幅 (パルス 数 )<br />

unsigned long dwLogic, // 出 力 論 理<br />

unsigned long dwOUTB // OUTB 出 力 設 定<br />

);<br />

●Kylix<br />

function UcntSetFreqDividerMode(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

dwDivisor: Dword; // 分 周 周 期 (パルス 数 )<br />

dwPulseWide: Dword; // 出 力 幅 (パルス 数 )<br />

dwLogic: Dword; // 出 力 論 理<br />

dwOUTB: Dword // OUTB 出 力 設 定<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

dwDivisor<br />

入 力 パルスの 分 周 周 期 設 定 値 を 指 定 してください。<br />

設 定 範 囲 :0 ~ 4,294,967,294(FFFFFFFEh)<br />

dwPulseWide<br />

出 力 パルス 幅 設 定 値 を 指 定 してください。<br />

設 定 範 囲 :0 ~ 4,294,967,294(FFFFFFFEh)<br />

※ 出 力 パルス 幅 には 分 周 周 期 以 下 の 値 を 指 定 してください。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

59


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

dwLogic<br />

出 力 論 理 を 指 定 してください。<br />

dwLogic<br />

内 容<br />

0 通 常 ( 正 論 理 )<br />

1 反 転 ( 負 論 理 )<br />

dwOUTB<br />

OUTB の 出 力 設 定 を 指 定 してください。<br />

識 別 子<br />

内 容<br />

IFUCNT_OUTB_STOP<br />

出 力 なし<br />

IFUCNT_OUTB_OUT<br />

OUTA と 同 一 パルス 出 力<br />

IFUCNT_OUTB_REV<br />

OUTA の 反 転 パルス 出 力<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 備 考 】<br />

● 分 周 器 モードの 概 要 について<br />

分 周 器 モードでは、A 相 からの 入 力 パルスを 元 にして、OUTA 及 び OUTB 端 子 から 指 定 した 分 周<br />

周 期 でパルス 出 力 を 行 います。<br />

具 体 的 なパルスの 生 成 方 法 としては、A 相 のパルスカウントを 行 い(UP/DOWN パルスカウント<br />

モード 1 逓 倍 でカウントします)、 比 較 カウンタ A から 比 較 カウンタ B に 設 定 したカウント 値<br />

の 間 OUTA(OUTB) 信 号 を Low にすることで、 任 意 の 周 期 のパルスを 生 成 します。<br />

比 較 カウンタ A の 値 が High パルス 幅 、 比 較 カウンタ B の 値 が 分 周 周 期 に 相 当 します。<br />

< 分 周 器 モードのタイミングチャート><br />

外 部 パルス<br />

A<br />

B<br />

UP/DOWN パルス<br />

外 部 クロック<br />

LA<br />

カウント<br />

スタート<br />

ソフトスタート<br />

比 較 レジスタ B<br />

比 較 レジスタ A<br />

OUTA<br />

上 記 のタイミングチャートで 示 した 様 に、 外 部 クロックのカウントと 一 致 検 出 出 力 機 能 の 組 み<br />

合 わせによってパルスを 生 成 しているため、 動 作 中 に 比 較 レジスタ 値 の 変 更<br />

(UcntSetComparator 関 数 )を 行 うと 分 周 周 期 が 変 化 してしまいますので、ご 注 意 ください。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

60


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntSetFreqDividerMode(nDevice, 1, 1000, 10, 0, IFUCNT_OUTB_REV);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntSetFreqDividerMode(nDevice, 1, 1000, 10, 0, IFUCNT_OUTB_REV);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 を 分 周 器 モード( 分 周 周 期 1000 分 の 1、 出 力 パ<br />

ルス 幅 10、 正 論 理 、OUTB 反 転 出 力 )に 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

61


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

16. UcntGetFreqDividerMode<br />

【 機 能 】<br />

分 周 器 モード 設 定 情 報 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetFreqDividerMode(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long* pdwDivisor, // 分 周 周 期 取 得 変 数 への<br />

// ポインタ<br />

unsigned long* pdwPulseWide, // 出 力 幅 取 得 変 数 への<br />

// ポインタ<br />

unsigned long* pdwLogic, // 出 力 論 理 取 得 変 数 への<br />

// ポインタ<br />

unsigned long* pdwOUTB // OUTB 出 力 設 定 取 得 変 数<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function UcntGetFreqDividerMode(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

var pdwDivisor: Dword; // 分 周 周 期 取 得 変 数 への<br />

// 参 照 渡 し<br />

var pdwPulseWide: Dword; // 出 力 幅 取 得 変 数 への<br />

// 参 照 渡 し<br />

var pdwLogic: Dword; // 出 力 論 理 取 得 変 数 への<br />

// 参 照 渡 し<br />

var pdwOUTB: Dword // OUTB 出 力 設 定 取 得 変 数<br />

// への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 情 報 を 取 得 するチャンネルを 指 定 してください。<br />

pdwDivisor<br />

入 力 パルスの 分 周 周 期 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

設 定 範 囲 :0 ~ 4,294,967,295(FFFFFFFFh)<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

62


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

pdwPulseWide<br />

出 力 パルス 幅 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

設 定 範 囲 :0 ~ 4,294,967,295(FFFFFFFFh)<br />

pdwLogic<br />

出 力 論 理 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

dwLogic<br />

内 容<br />

0 通 常 ( 正 論 理 )<br />

1 反 転 ( 負 論 理 )<br />

pdwOUTB<br />

OUTB の 出 力 設 定 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

識 別 子<br />

内 容<br />

IFUCNT_OUTB_STOP<br />

出 力 なし<br />

IFUCNT_OUTB_OUT<br />

OUTA と 同 一 パルス 出 力<br />

IFUCNT_OUTB_REV<br />

OUTA の 反 転 パルス 出 力<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwDivisor;<br />

unsigned long dwPulseWide;<br />

unsigned long dwLogic;<br />

unsigned long dwOUTB;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetFreqDividerMode(nDevice, 1, &dwDivisor, &dwPulseWide,<br />

&dwLogic, &dwOUTB);<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

63


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwDivisor: Dword;<br />

dwPulseWide: Dword;<br />

dwLogic: Dword;<br />

dwOUTB: Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntGetFreqDividerMode(nDevice, 1, dwDivisor, dwPulseWide,<br />

dwLogic, dwOUTB);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 の 分 周 器 モード 設 定 情 報 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

64


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

17. UcntSetPulseGeneratorMode<br />

【 機 能 】<br />

パルスジェネレーターモードに 設 定 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntSetPulseGeneratorMode(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long dwClock, // 基 準 クロック<br />

unsigned long dwCycleWide, // パルス 周 期 幅<br />

unsigned long dwHPulseWide, // High パルス 幅<br />

unsigned long dwOUTB // OUTB 出 力 設 定<br />

);<br />

●Kylix<br />

function UcntSetPulseGeneratorMode(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

dwClock: Dword; // 基 準 クロック<br />

dwCycleWide: Dword; // パルス 周 期 幅<br />

dwHPulseWide: Dword; // High パルス 幅<br />

dwOUTB: Dword // OUTB 出 力 設 定<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

dwClock<br />

基 準 クロック 設 定 値 を 指 定 してください。<br />

設 定 範 囲 :0 ~ 16,777,215(FFFFFFh)<br />

dwClock 基 準 クロック 周 期<br />

0 停 止<br />

1 100 [ns]<br />

・<br />

・<br />

・<br />

・<br />

・<br />

・<br />

16,777,215 1.6777215 [s]<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

65


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

dwCycleWide<br />

パルス 周 期 幅 (クロック 数 ) 設 定 値 を 指 定 してください。<br />

設 定 範 囲 :0 ~ 4,294,967,294(FFFFFFFFh)<br />

dwHPulseWide<br />

High パルス 幅 (クロック 数 ) 設 定 値 を 指 定 してください。<br />

設 定 範 囲 :0 ~ 4,294,967,294(FFFFFFFFh)<br />

※ High パルス 幅 にはパルス 周 期 幅 以 下 の 値 を 指 定 してください。<br />

dwOUTB<br />

OUTB の 出 力 設 定 を 指 定 してください。<br />

識 別 子<br />

内 容<br />

IFUCNT_OUTB_STOP<br />

出 力 なし<br />

IFUCNT_OUTB_OUT<br />

OUTA と 同 一 パルス 出 力<br />

IFUCNT_OUTB_REV<br />

OUTA の 反 転 パルス 出 力<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 備 考 】<br />

●パルスジェネレータモードの 概 要 について<br />

パルスジェネレータモードでは、 各 チャンネルの OUTA 及 び OUTB 端 子 から、 指 定 した 周 期 でパ<br />

ルス 出 力 を 行 います。<br />

具 体 的 なパルスの 生 成 方 法 としては、 内 部 基 準 クロックによるカウントを 行 い、 比 較 カウンタ<br />

A から 比 較 カウンタ B に 設 定 したカウント 値 の 間 OUTA(OUTB) 信 号 を Low にすることで、 任 意<br />

の 周 期 のパルスを 生 成 します。<br />

比 較 カウンタ A の 値 が High パルス 幅 、 比 較 カウンタ B の 値 がパルスの 周 期 に 相 当 する 為 、こ<br />

れらの 比 較 カウンタ 値 の 比 率 でデューティ 比 を 決 定 します。<br />

出 力 パルスの 周 波 数 は、 基 準 クロックとパルス 周 期 幅 の 値 から 下 記 の 計 算 式 で 算 出 できます。<br />

出 力 周 波 数 [Hz] = 10,000,000 / ( dwClock × dwCycleWide )<br />

出 力 パルスのデューティ 比 はパルス 周 期 幅 と High パルス 幅 の 値 から 下 記 の 計 算 式 で 算 出 でき<br />

ます。<br />

デューティ 比 [%] = ( dwHPulseWide / dwCycleWide )× 100<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

66


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

<br />

内 部 基 準 クロック<br />

LA<br />

カウント<br />

スタート<br />

ソフトスタート<br />

比 較 レジスタ B<br />

比 較 レジスタ A<br />

OUTA<br />

上 記 のタイミングチャートで 示 した 様 に、 内 部 基 準 クロックのカウントと 一 致 検 出 出 力 機 能 の<br />

組 み 合 わせによってパルスを 生 成 しているため、 動 作 中 に 内 部 基 準 クロック<br />

(UcntSetBaseClock 関 数 )や 比 較 レジスタ 値 の 変 更 (UcntSetComparator 関 数 )を 行 うとパル<br />

ス 周 期 が 変 化 してしまいますので、ご 注 意 ください。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntSetPulseGeneratorMode(nDevice, 1, 1, 2, 1, IFUCNT_OUTB_NO);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntSetPulseGeneratorMode(nDevice, 1, 1, 2, 1, IFUCNT_OUTB_NO);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 をパルスジェネレーターモード( 出 力 周 波 数 5MHz、<br />

デューティ 比 50%)に 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

67


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

18. UcntGetPulseGeneratorMode<br />

【 機 能 】<br />

パルスジェネレーターモード 設 定 情 報 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetPulseGeneratorMode(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long* pdwClock, // 基 準 クロック 取 得 変 数<br />

// へのポインタ<br />

unsigned long* pdwCycleWide, // パルス 周 期 幅 取 得 変 数<br />

// へのポインタ<br />

unsigned long* pdwHPulseWide, // High パルス 幅 取 得 変 数<br />

// へのポインタ<br />

unsigned long* pdwOUTB // OUTB 出 力 設 定 取 得 変 数<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function UcntGetPulseGeneratorMode(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

var pdwClock: Dword; // 基 準 クロック 取 得 変 数<br />

// への 参 照 渡 し<br />

var pdwCycleWide: Dword; // パルス 周 期 幅 取 得 変 数<br />

// への 参 照 渡 し<br />

var pdwHPulseWide: Dword; // High パルス 幅 取 得 変 数<br />

// への 参 照 渡 し<br />

var pdwOUTB: Dword // OUTB 出 力 設 定 取 得 変 数<br />

// への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 情 報 を 取 得 するチャンネルを 指 定 してください。<br />

pdwClock<br />

基 準 クロック 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

取 得 範 囲 :0 ~ 16,777,215(FFFFFFh)<br />

dwClock 基 準 クロック 周 期<br />

0 停 止<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

68


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

1 100 [ns]<br />

・<br />

・<br />

・<br />

・<br />

・<br />

・<br />

16,777,215 1.6777215 [s]<br />

dwCycleWide<br />

パルス 周 期 幅 (クロック 数 ) 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

取 得 範 囲 :0 ~ 4,294,967,294(FFFFFFFFh)<br />

dwHPulseWide<br />

High パルス 幅 (クロック 数 ) 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

取 得 範 囲 :0 ~ 4,294,967,294(FFFFFFFFh)<br />

dwOUTB<br />

OUTB の 出 力 設 定 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

識 別 子<br />

内 容<br />

IFUCNT_OUTB_STOP<br />

出 力 なし<br />

IFUCNT_OUTB_OUT<br />

OUTA と 同 一 パルス 出 力<br />

IFUCNT_OUTB_REV<br />

OUTA の 反 転 パルス 出 力<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwClock;<br />

unsigned long dwCycleWide;<br />

unsigned long dwHPulseWide;<br />

unsigned long dwOUTB;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetPulseGeneratorMode(nDevice, 1, &dwClock, &dwCycleWide,<br />

dwHPulseWide, &OUTB);<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

69


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwClock: Dword;<br />

dwCycleWide: Dword;<br />

dwHPulseWide: Dword;<br />

dwOUTB: Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntGetPulseGeneratorMode(nDevice, 1, dwClock, dwCycleWide,<br />

dwHPulseWide, dwOUTB);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 のパルスジェネレーターモード 設 定 情 報 を 取 得<br />

します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

70


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

19. UcntSetLoadData<br />

【 機 能 】<br />

プリロードデータを 設 定 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntSetLoadData(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long dwLoadData // プリロードデータ<br />

);<br />

●Kylix<br />

function UcntSetLoadData(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

dwLoadData: Dword // プリロードデータ<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

dwLoadData<br />

プリロードデータ 設 定 値 を 指 定 してください。<br />

設 定 範 囲 :0 ~ 4,294,967,295(FFFFFFFFh)<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

71


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntSetLoadData(nDevice, 1, 0);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntSetLoadData(nDevice, 1, 0);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 のプリロードデータを 0 に 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

72


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

20. UcntGetLoadData<br />

【 機 能 】<br />

プリロードデータ 設 定 情 報 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetLoadData(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long* pdwLoadData // プリロードデータ 取 得 変 数<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function UcntGetLoadData(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

var pdwLoadData: Dword // プリロードデータ 取 得 変 数<br />

// への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 情 報 を 取 得 するチャンネルを 指 定 してください。<br />

pdwLoadData<br />

プリロードデータ 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

設 定 範 囲 :0 ~ 4,294,967,295(FFFFFFFFh)<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

73


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwLoadData;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetLoadData(nDevice, 1, &dwLoadData);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwLoadData: Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntGetLoadData(nDevice, 1, dwLoadData);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 のプリロードデータ 設 定 値 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

74


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

21. UcntSetBaseClock<br />

【 機 能 】<br />

内 部 基 準 クロックを 設 定 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntSetBaseClock(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long dwClock // 内 部 基 準 クロック<br />

);<br />

●Kylix<br />

function UcntSetBaseClock(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

dwClock: Dword // 内 部 基 準 クロック<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

dwClock<br />

内 部 基 準 クロック 設 定 値 を 指 定 してください。<br />

設 定 範 囲 :0 ~ 16,777,215(FFFFFFh)<br />

dwClock 基 準 クロック 周 期<br />

0 停 止<br />

1 100 [ns]<br />

・<br />

・<br />

・<br />

・<br />

・<br />

・<br />

16,777,215 1.6777215 [s]<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

75


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntSetBaseClock(nDevice, 1, 1000 * 10);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntSetBaseClock(nDevice, 1, 1000 * 10);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 の 内 部 基 準 クロックを 1[ms]に 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

76


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

22. UcntGetBaseClock<br />

【 機 能 】<br />

内 部 基 準 クロック 設 定 情 報 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetBaseClock(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long* pdwClock // 内 部 基 準 クロック 取 得 変 数<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function UcntGetBaseClock(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

var pdwClock: Dword // 内 部 基 準 クロック 取 得 変 数<br />

// への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 情 報 を 取 得 するチャンネルを 指 定 してください。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

77


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

pdwClock<br />

内 部 基 準 クロック 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

設 定 範 囲 :0 ~ 16,777,215(FFFFFFh)<br />

dwClock 基 準 クロック 周 期<br />

0 停 止<br />

1 100 [ns]<br />

・<br />

・<br />

・<br />

・<br />

・<br />

・<br />

16,777,215 1.6777215 [s]<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwClock;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetBaseClock(nDevice, 1, &dwClock);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwClock: Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntGetBaseClock(nDevice, 1, dwClock);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 の 内 部 基 準 クロック 設 定 値 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

78


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

23. UcntSetTriggerConfig<br />

【 機 能 】<br />

トリガ 条 件 を 設 定 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntSetTriggerConfig(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long dwTrgStart, // スタートトリガ 条 件<br />

unsigned long dwTrgStop // ストップトリガ 条 件<br />

);<br />

●Kylix<br />

function UcntSetTriggerConfig(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

dwTrgStart: Dword; // スタートトリガ 条 件<br />

dwTrgStop: Dword // ストップトリガ 条 件<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

dwTrgStart<br />

スタートトリガ 条 件 設 定 値 を 指 定 してください。<br />

下 記 の 識 別 子 を 組 み 合 わせて 指 定 します。<br />

(2 つ 以 上 の 条 件 を 選 択 する 場 合 には 識 別 子 を OR で 指 定 します。)<br />

識 別 子<br />

内 容<br />

IFUCNT_LA_R LA の 立 ち 上 がりエッジ<br />

IFUCNT_LA_F LA の 立 ち 下 がりエッジ<br />

IFUCNT_LB_R LB の 立 ち 上 がりエッジ<br />

IFUCNT_LB_F LB の 立 ち 下 がりエッジ<br />

dwTrgStop<br />

ストップトリガ 条 件 設 定 値 を 指 定 してください。<br />

下 記 の 識 別 子 を 組 み 合 わせて 指 定 します。<br />

(2 つ 以 上 の 条 件 を 選 択 する 場 合 には 識 別 子 を OR で 指 定 します。)<br />

識 別 子<br />

内 容<br />

IFUCNT_LA_R LA の 立 ち 上 がりエッジ<br />

IFUCNT_LA_F LA の 立 ち 下 がりエッジ<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

79


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

IFUCNT_LB_R<br />

IFUCNT_LB_F<br />

LB の 立 ち 上 がりエッジ<br />

LB の 立 ち 下 がりエッジ<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntSetTriggerConfig(nDevice, 2, IFUCNT_LA_R, IFUCNT_LB_F);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntSetTriggerConfig(nDevice, 2, IFUCNT_LA_R, IFUCNT_LB_F);<br />

デバイス 番 号 「1」のデバイスのチャンネル 2 のトリガ 条 件 (LA 立 ち 上 がりスタート、LB 立 ち<br />

上 がりストップ)を 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

80


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

24. UcntGetTriggerConfig<br />

【 機 能 】<br />

トリガ 条 件 設 定 値 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetTriggerConfig(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long* pdwTrgStart, // スタートトリガ 条 件 取 得<br />

// 変 数 へのポインタ<br />

unsigned long* pdwTrgStop // ストップトリガ 条 件 取 得<br />

// 変 数 へのポインタ<br />

);<br />

●Kylix<br />

function UcntGetTriggerConfig(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

var pdwTrgStart: Dword; // スタートトリガ 条 件 取 得<br />

// 変 数 への 参 照 渡 し<br />

var pdwTrgStop: Dword // ストップトリガ 条 件 取 得<br />

// 変 数 への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 情 報 を 取 得 するチャンネルを 指 定 してください。<br />

dwTrgStart<br />

スタートトリガ 条 件 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

識 別 子<br />

内 容<br />

IFUCNT_LA_R LA の 立 ち 上 がりエッジ<br />

IFUCNT_LA_F LA の 立 ち 下 がりエッジ<br />

IFUCNT_LB_R LB の 立 ち 上 がりエッジ<br />

IFUCNT_LB_F LB の 立 ち 下 がりエッジ<br />

dwTrgStop<br />

ストップトリガ 条 件 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

識 別 子<br />

内 容<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

81


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

IFUCNT_LA_R<br />

IFUCNT_LA_F<br />

IFUCNT_LB_R<br />

IFUCNT_LB_F<br />

LA の 立 ち 上 がりエッジ<br />

LA の 立 ち 下 がりエッジ<br />

LB の 立 ち 上 がりエッジ<br />

LB の 立 ち 下 がりエッジ<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwTrgStart;<br />

unsigned long dwTrgStop;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetTriggerConfig(nDevice, 2, &dwTrgStart, &dwTrgStop);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwTrgStart: Dword;<br />

dwTrgStop: Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntGetTriggerConfig(nDevice, 2, dwTrgStart, dwTrgStop);<br />

デバイス 番 号 「1」のデバイスのチャンネル 2 のトリガ 条 件 設 定 値 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

82


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

25. UcntSetTriggerChannel<br />

【 機 能 】<br />

トリガチャンネルを 設 定 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntSetTriggerChannel(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

int nTrgChannel, // トリガチャンネル 選 択<br />

unsigned long dwTrgMode // トリガモード<br />

);<br />

●Kylix<br />

function UcntSetTriggerChannel(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

nTrgChannel: Integer; // トリガチャンネル 選 択<br />

dwTrgMode: Dword // トリガモード<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

dwTrgChannel<br />

トリガ 要 因 として 使 用 するチャンネルを 指 定 してください。<br />

dwTrgMode<br />

トリガモードを 指 定 してください。<br />

スタート/ストップ 機 能 の 繰 り 返 し 設 定 を 指 定 します。<br />

識 別 子<br />

内 容<br />

IFUCNT_TRG_NORMAL ノーマルモード(スタート/ストップを 繰 り 返 す)<br />

IFUCNT_TRG_SINGLE シングルモード(1 回 のみスタート/ストップを 行 う)<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

83


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 備 考 】<br />

dwTrgChannel に 指 定 したチャンネルのスタート・ストップトリガのタイミングで 任 意 のチャン<br />

ネルのカウンタ 動 作 を 制 御 することが 可 能 となります。<br />

UcntSetTriggerChannel(nDevice, 1, 1, IFUCNT_TRG_NORMAL);<br />

UcntSetTriggerChannel(nDevice, 2, 1, IFUCNT_TRG_NORMAL);<br />

UcntSetTriggerChannel(nDevice, 3, 1, IFUCNT_TRG_NORMAL);<br />

UcntSetTriggerChannel(nDevice, 4, 1, IFUCNT_TRG_NORMAL);<br />

上 記 の 様 に 設 定 を 行 った 場 合 、チャンネル 1 に 設 定 したのスタート・ストップの 条 件 で、チャ<br />

ンネル 1~チャンネル 4 までのカウンタのスタート・ストップが 同 時 に 制 御 されます。<br />

また、UcntStartCount 関 数 / UcntStopCount 関 数 を 実 行 する 際 には、トリガチャンネルに 設 定<br />

したチャンネル( 上 記 設 定 の 場 合 はチャンネル 1)を 指 定 して、カウンタの 制 御 を 行 います。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntSetTriggerConfig(nDevice, 4, IFUCNT_LA_R, IFUCNT_LB_F);<br />

nRet = UcntSetTriggerChannel(nDevice, 1, 4, IFUCNT_TRG_NORMAL);<br />

nRet = UcntSetTriggerChannel(nDevice, 2, 4, IFUCNT_TRG_NORMAL);<br />

nRet = UcntSetTriggerChannel(nDevice, 3, 4, IFUCNT_TRG_NORMAL);<br />

nRet = UcntSetTriggerChannel(nDevice, 4, 4, IFUCNT_TRG_NORMAL);<br />

:<br />

:<br />

nRet = UcntStartCount(nDevice, 0x08, IFUCNT_CMD_START);<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

84


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntSetTriggerConfig(nDevice, 4, IFUCNT_LA_R, IFUCNT_LB_F);<br />

nRet := UcntSetTriggerChannel(nDevice, 1, 4, IFUCNT_TRG_NORMAL);<br />

nRet := UcntSetTriggerChannel(nDevice, 2, 4, IFUCNT_TRG_NORMAL);<br />

nRet := UcntSetTriggerChannel(nDevice, 3, 4, IFUCNT_TRG_NORMAL);<br />

nRet := UcntSetTriggerChannel(nDevice, 4, 4, IFUCNT_TRG_NORMAL);<br />

:<br />

:<br />

nRet := UcntStartCount(nDevice, $08, IFUCNT_CMD_START);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1~チャンネル 4 のスタート/ストップトリガをチ<br />

ャンネル 4 に 設 定 します。<br />

(カウンタ 制 御 時 にはチャンネル 4 に 対 してコマンドを 実 行 します。)<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

85


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

26. UcntGetTriggerChannel<br />

【 機 能 】<br />

トリガチャンネルを 設 定 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetTriggerChannel(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

int* pnTrgChannel, // トリガチャンネル 取 得 変 数<br />

// へのポインタ<br />

unsigned long* pdwTrgMode // トリガモード 取 得 変 数<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function UcntGetTriggerChannel(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

var pnTrgChannel: Integer; // トリガチャンネル 取 得 変 数<br />

// への 参 照 渡 し<br />

var pdwTrgMode: Dword // トリガモード 取 得 変 数<br />

// への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 情 報 を 取 得 するチャンネルを 指 定 してください。<br />

pnTrgChannel<br />

トリガチャンネル 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

pdwTrgMode<br />

トリガモード 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

下 記 の 値 が 格 納 されます。<br />

識 別 子<br />

内 容<br />

IFUCNT_TRG_NORMAL ノーマルモード(スタート/ストップを 繰 り 返 す)<br />

IFUCNT_TRG_SINGLE シングルモード(1 回 のみスタート/ストップを 行 う)<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

86


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nTrgChannel;<br />

unsigned long dwTrgMode;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetTriggerChannel(nDevice, 1, &nTrgChannel, &dwTrgMode);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nTrgChannel: Integer;<br />

dwTrgMode: Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntGetTriggerChannel(nDevice, 1, nTrgChannel, dwTrgMode);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 のトリガチャンネル 設 定 条 件 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

87


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

27. UcntSetComparatorConfig<br />

【 機 能 】<br />

一 致 検 出 条 件 を 設 定 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntSetComparatorConfig(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long dwCmpChSel, // チャンネル 条 件 (OUTA)<br />

unsigned long dwOUTAConfig, // 一 致 検 出 条 件 (OUTA)<br />

unsigned long dwOUTBConfig // 一 致 検 出 条 件 (OUTB)<br />

);<br />

●Kylix<br />

function UcntSetComparatorConfig(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

dwCmpChSel: Dword; // チャンネル 条 件 (OUTA)<br />

dwOUTAConfig: Dword; // 一 致 検 出 条 件 (OUTA)<br />

dwOUTBConfig: Dword // 一 致 検 出 条 件 (OUTB)<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

dwCmpChSel<br />

一 致 検 出 条 件 を 使 用 するチャンネル 設 定 を 指 定 してください。<br />

ビット bit31~4 bit3 bit2 bit1 bit0<br />

内 容 予 約 AEQCH4 AEQCH3 AEQCH2 AEQCH1<br />

AEQCH4~AEQCH1:チャンネル 条 件 設 定 を 指 定 します。<br />

AEQCH4 AEQCH3 AEQCH2 AEQCH1 内 容<br />

0 0 0 0 設 定 禁 止<br />

0 0 0 1 CH1 の 比 較 一 致 条 件<br />

: : : : :<br />

1 1 1 1 CH1~CH4 の 比 較 一 致 条 件 の AND 条 件<br />

※ 本 設 定 で 指 定 した 一 致 検 出 条 件 は OUTA にのみ 有 効 となります。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

88


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

dwOUTAConfig<br />

OUTA 一 致 検 出 条 件 設 定 値 を 指 定 してください。<br />

ビット bit31~bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 AEQ1 AEQ0 AEQT AEQ<br />

LD<br />

AEQ<br />

OP2<br />

AEQ<br />

OP1<br />

AEQ<br />

OP0<br />

AEQOP2~AEQOP0:OUTA の 出 力 形 式 設 定 を 指 定 します。<br />

AEQOP2 AEQOP1 AEQOP0 内 容<br />

0 0 0 一 致 検 出 出 力 無 効<br />

0 0 1 条 件 が 一 致 している 間 Low 出 力<br />

0 1 0 条 件 が 一 致 している 間 High 出 力<br />

0 1 1 1[us](Low パルス)<br />

1 0 0 10[us](Low パルス)<br />

1 0 1 100[us](Low パルス)<br />

1 1 0 Low ラッチ 出 力<br />

1 1 1 High ラッチ 出 力<br />

AEQLD: 一 致 検 出 時 のプリロード 設 定 を 指 定 します。<br />

AEQLD<br />

内 容<br />

0 プリロードしない<br />

1 プリロードする<br />

AEQT: 比 較 タイミング 設 定 を 指 定 します。<br />

AEQT<br />

内 容<br />

0 常 に 比 較<br />

1 リードレジスタにラッチ 時 に 比 較<br />

AEQ1、AEQ0: 比 較 条 件 設 定 を 指 定 します。<br />

AEQ1 AEQ0 内 容<br />

0 0 カウンタ 値 = 比 較 レジスタ A<br />

0 1 カウンタ 値 ≦ 比 較 レジスタ A<br />

1 0 カウンタ 値 ≧ 比 較 レジスタ A<br />

1 1 比 較 レジスタ A ≦ カウンタ 値 ≦ 比 較 レジスタ B<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

89


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

dwOUTBConfig<br />

OUTB 一 致 検 出 条 件 設 定 値 を 指 定 してください。<br />

ビット bit31~bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 BEQ1 BEQ0 BEQT BEQ<br />

LD<br />

BEQ<br />

OP2<br />

BEQ<br />

OP1<br />

BEQ<br />

OP0<br />

BEQOP2~BEQOP0:OUTB の 出 力 形 式 設 定 を 指 定 します。<br />

BEQOP2 BEQOP1 BEQOP0 内 容<br />

0 0 0 一 致 検 出 出 力 無 効<br />

0 0 1 条 件 が 一 致 している 間 Low 出 力<br />

0 1 0 条 件 が 一 致 している 間 High 出 力<br />

0 1 1 1[us](Low パルス)<br />

1 0 0 10[us](Low パルス)<br />

1 0 1 100[us](Low パルス)<br />

1 1 0 Low ラッチ 出 力<br />

1 1 1 High ラッチ 出 力<br />

BEQLD: 一 致 検 出 時 のプリロード 設 定 を 指 定 します。<br />

BEQLD<br />

内 容<br />

0 プリロードしない<br />

1 プリロードする<br />

BEQT: 比 較 タイミング 設 定 を 指 定 します。<br />

BEQT<br />

内 容<br />

0 常 に 比 較<br />

1 リードレジスタにラッチ 時 に 比 較<br />

BEQ1、BEQ0: 比 較 条 件 設 定 を 指 定 します。<br />

BEQ1 BEQ0 内 容<br />

0 0 カウンタ 値 = 比 較 レジスタ B<br />

0 1 カウンタ 値 ≦ 比 較 レジスタ B<br />

1 0 カウンタ 値 ≧ 比 較 レジスタ B<br />

1 1 比 較 レジスタ A ≦ カウンタ 値 ≦ 比 較 レジスタ B<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

90


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntSetComparatorConfig(nDevice, 1, 0x1, 0x01, 0x00);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntSetComparatorConfig(nDevice, 1, $1, $01, $00);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 の 一 致 検 出 条 件 (OUTA:チャンネル 1 条 件 を 使<br />

用 、 比 較 レジスタ A との 一 致 時 に Low レベル 出 力 、OUTB: 一 致 検 出 なし)を 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

91


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

28. UcntGetComparatorConfig<br />

【 機 能 】<br />

一 致 検 出 条 件 設 定 情 報 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetComparatorConfig(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long* pdwCmpChSel, // チャンネル 条 件 (OUTA)<br />

// 取 得 変 数 へのポインタ<br />

unsigned long* pdwOUTAConfig, // 一 致 検 出 条 件 (OUTA)<br />

// 取 得 変 数 へのポインタ<br />

unsigned long* pdwOUTBConfig // 一 致 検 出 条 件 (OUTB)<br />

// 取 得 変 数 へのポインタ<br />

);<br />

●Kylix<br />

function UcntGetComparatorConfig(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

var pdwCmpChSel: Dword; // チャンネル 条 件 (OUTA)<br />

// 取 得 変 数 への 参 照 渡 し<br />

var pdwOUTAConfig: Dword; // 一 致 検 出 条 件 (OUTA)<br />

// 取 得 変 数 への 参 照 渡 し<br />

var pdwOUTBConfig: Dword // 一 致 検 出 条 件 (OUTB)<br />

// 取 得 変 数 への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 情 報 を 取 得 するチャンネルを 指 定 してください。<br />

pdwCmpChSel<br />

一 致 検 出 条 件 を 使 用 するチャンネル 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してくだ<br />

さい。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

ビット bit31~4 bit3 bit2 bit1 bit0<br />

内 容 予 約 AEQCH4 AEQCH3 AEQCH2 AEQCH1<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

92


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

AEQCH4~AEQCH1:チャンネル 条 件 設 定 を 取 得 します。<br />

AEQCH4 AEQCH3 AEQCH2 AEQCH1 内 容<br />

0 0 0 0 設 定 禁 止<br />

0 0 0 1 CH1 の 比 較 一 致 条 件<br />

: : : : :<br />

1 1 1 1 CH1~CH4 の 比 較 一 致 条 件 の AND 条 件<br />

※ 本 設 定 で 取 得 した 一 致 検 出 条 件 は OUTA にのみ 有 効 となります。<br />

pdwOUTAConfig<br />

OUTA 一 致 検 出 条 件 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

ビット bit31~bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 AEQ1 AEQ0 AEQT AEQ<br />

LD<br />

AEQ<br />

OP2<br />

AEQ<br />

OP1<br />

AEQ<br />

OP0<br />

AEQOP2~AEQOP0:OUTA の 出 力 形 式 設 定 を 取 得 します。<br />

AEQOP2 AEQOP1 AEQOP0 内 容<br />

0 0 0 一 致 検 出 出 力 無 効<br />

0 0 1 条 件 が 一 致 している 間 Low 出 力<br />

0 1 0 条 件 が 一 致 している 間 High 出 力<br />

0 1 1 1[us](Low パルス)<br />

1 0 0 10[us](Low パルス)<br />

1 0 1 100[us](Low パルス)<br />

1 1 0 Low ラッチ 出 力<br />

1 1 1 High ラッチ 出 力<br />

AEQLD: 一 致 検 出 時 のプリロード 設 定 を 取 得 します。<br />

AEQLD<br />

内 容<br />

0 プリロードしない<br />

1 プリロードする<br />

AEQT: 比 較 タイミング 設 定 を 取 得 します。<br />

AEQT<br />

内 容<br />

0 常 に 比 較<br />

1 リードレジスタにラッチ 時 に 比 較<br />

AEQ1、AEQ0: 比 較 条 件 設 定 を 取 得 します。<br />

AEQ1 AEQ0 内 容<br />

0 0 カウンタ 値 = 比 較 レジスタ A<br />

0 1 カウンタ 値 ≦ 比 較 レジスタ A<br />

1 0 カウンタ 値 ≧ 比 較 レジスタ A<br />

1 1 比 較 レジスタ A ≦ カウンタ 値 ≦ 比 較 レジスタ B<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

93


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

pdwOUTBConfig<br />

OUTB 一 致 検 出 条 件 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

ビット bit31~bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 BEQ1 BEQ0 BEQT BEQ<br />

LD<br />

BEQ<br />

OP2<br />

BEQ<br />

OP1<br />

BEQ<br />

OP0<br />

BEQOP2~BEQOP0:OUTA の 出 力 形 式 設 定 を 取 得 します。<br />

BEQOP2 BEQOP1 BEQOP0 内 容<br />

0 0 0 一 致 検 出 出 力 無 効<br />

0 0 1 条 件 が 一 致 している 間 Low 出 力<br />

0 1 0 条 件 が 一 致 している 間 High 出 力<br />

0 1 1 1[us](Low パルス)<br />

1 0 0 10[us](Low パルス)<br />

1 0 1 100[us](Low パルス)<br />

1 1 0 Low ラッチ 出 力<br />

1 1 1 High ラッチ 出 力<br />

BEQLD: 一 致 検 出 時 のプリロード 設 定 を 取 得 します。<br />

BEQLD<br />

内 容<br />

0 プリロードしない<br />

1 プリロードする<br />

BEQT: 比 較 タイミング 設 定 を 取 得 します。<br />

BEQT<br />

内 容<br />

0 常 に 比 較<br />

1 リードレジスタにラッチ 時 に 比 較<br />

BEQ1、BEQ0: 比 較 条 件 設 定 を 取 得 します。<br />

BEQ1 BEQ0 内 容<br />

0 0 カウンタ 値 = 比 較 レジスタ B<br />

0 1 カウンタ 値 ≦ 比 較 レジスタ B<br />

1 0 カウンタ 値 ≧ 比 較 レジスタ B<br />

1 1 比 較 レジスタ A ≦ カウンタ 値 ≦ 比 較 レジスタ B<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

94


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwCmpChSel;<br />

unsigned long dwOUTAConfig;<br />

unsigned long dwOUTBConfig;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetComparatorConfig(nDevice, 1, &dwCmpChSel, &dwOUTAConfig,<br />

&dwOUTBConfig);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwCompChannel: Dword;<br />

dwOUTAConfig: Dword;<br />

dwOUTBConfig: Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntGetComparatorConfig(nDevice, 1, dwCmpChSel, dwOUTAConfig,<br />

dwOUTBChannel);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 の 一 致 検 出 条 件 設 定 情 報 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

95


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

29. UcntSetFilter<br />

【 機 能 】<br />

デジタルフィルタを 設 定 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntSetFilter(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long dwFilter // デジタルフィルタ<br />

);<br />

●Kylix<br />

function UcntSetFilter(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

dwFilter: Dword // デジタルフィルタ<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

dwFilter<br />

デジタルフィルタ 設 定 値 を 指 定 してください。<br />

ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8<br />

内 容 FCLK FCNT14 FCNT13 FCNT12 FCNT11 FCNT10 FCNT9 FCNT8<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 FCNT7 FCNT6 FCNT5 FCNT4 FCNT3 FCNT2 FCNT1 FCNT0<br />

FCLK:デジタルフィルタの 基 準 クロックを 指 定 します。<br />

FCNT14~FCNT0:デジタルフィルタのカウント 数 を 指 定 します。<br />

基 準 クロック 0 1<br />

カウント 数<br />

FCLK<br />

FCNT14~FCNT0<br />

100[ns] 10[us]<br />

0 停 止 停 止<br />

1 100[ns] 10[us]<br />

2 200[ns] 20[us]<br />

: : :<br />

32,767 3.2767[ms] 327.67[ms]<br />

【 戻 り 値 】<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

96


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntSetFilter(nDevice, 1, 0x8064);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntSetFilter(nDevice, 1, $8064);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 のデジタルフィルタ(フィルタ 周 期 1ms)を 設 定<br />

します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

97


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

30. UcntGetFilter<br />

【 機 能 】<br />

デジタルフィルタ 設 定 情 報 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetFilter(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // 取 得 チャンネル<br />

unsigned long* pdwFilter<br />

// デジタルフィルタ 取 得 変 数<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function UcntGetFilter(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // 取 得 チャンネル<br />

var pdwFilter: Dword // デジタルフィルタ 取 得 変 数<br />

// への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 情 報 を 取 得 するチャンネルを 指 定 してください。<br />

pdwFilter<br />

デジタルフィルタ 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8<br />

内 容 FCLK FCNT14 FCNT13 FCNT12 FCNT11 FCNT10 FCNT9 FCNT8<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 FCNT7 FCNT6 FCNT5 FCNT4 FCNT3 FCNT2 FCNT1 FCNT0<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

98


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

FCLK:デジタルフィルタの 基 準 クロックを 取 得 します。<br />

FCNTR14~FCNT0:デジタルフィルタのカウントを 取 得 します。<br />

基 準 クロック 0 1<br />

カウント 数<br />

FCLK<br />

FCNT14~FCNT0<br />

100[ns] 10[us]<br />

0 停 止 停 止<br />

1 100[ns] 10[us]<br />

2 200[ns] 20[us]<br />

: : :<br />

32,767 3.2767[ms] 327.67[ms]<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwFilter;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetFilter(nDevice, 1, &dwFilter);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwFilter: Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntGetFilter(nDevice, 1, dwFilter);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 のデジタルフィルタ 設 定 情 報 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

99


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

31. UcntSetCounter<br />

【 機 能 】<br />

カウンタ 値 を 設 定 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntSetCounter(<br />

int nDevice, // デバイス 番 号<br />

unsigned long dwChSel, // チャンネル 選 択<br />

unsigned long* pdwCounter // プリロードデータを 格 納<br />

// する 配 列 へのポインタ<br />

);<br />

●Kylix<br />

function UcntSetCounter(<br />

nDevice: Integer; // デバイス 番 号<br />

dwChSel: Dword; // チャンネル 選 択<br />

var pdwCounter: Dword // プリロードデータを 格 納<br />

// する 配 列 への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

dwChSel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

各 チャンネルに 対 応 した bit に 1 を 指 定 して、 複 数 チャンネルを 同 時 に 設 定 します。<br />

ビット bit31~bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 CH4 CH3 CH2 CH1<br />

pdwCounter<br />

プリロードデータを 格 納 する 配 列 のポインタを 指 定 してください。<br />

配 列 の 各 要 素 には 下 記 の 値 を 格 納 します。<br />

取 得 範 囲 :0 ~ 4,294,967,295(FFFFFFFFh)<br />

dwCounter[0] チャンネル 1 のプリロードデータ<br />

dwCounter[1] チャンネル 2 のプリロードデータ<br />

dwCounter[2] チャンネル 3 のプリロードデータ<br />

dwCounter[3] チャンネル 4 のプリロードデータ<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

100


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwCounter[4];<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

dwCounter[0] = 100;<br />

dwCounter[1] = 100;<br />

dwCounter[2] = 100;<br />

dwCounter[3] = 100;<br />

nRet = UcntSetCounter(nDevice, 0x0F, dwCounter);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwCounter: Array[0..3] of Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

dwCounter[0] := 100;<br />

dwCounter[1] := 100;<br />

dwCounter[2] := 100;<br />

dwCounter[3] := 100;<br />

nRet := UcntSetCounter(nDevice, $0F, dwCounter[0]);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1~チャンネル 4 のカウンタ 値 を 全 て 100 に 設 定 し<br />

ます。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

101


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

32. UcntReadCounter<br />

【 機 能 】<br />

カウンタ 値 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntReadCounter(<br />

int nDevice, // デバイス 番 号<br />

unsigned long dwChSel, // チャンネル 選 択<br />

unsigned long* pdwCounter // カウンタ 値 を 格 納<br />

// する 配 列 へのポインタ<br />

);<br />

●Kylix<br />

function UcntReadCounter(<br />

nDevice: Integer; // デバイス 番 号<br />

dwChSel: Dword; // チャンネル 選 択<br />

var pdwCounter: Dword // カウンタ 値 を 格 納<br />

// する 配 列 への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

dwChSel<br />

取 得 するチャンネルを 指 定 してください。<br />

各 チャンネルに 対 応 した bit に 1 を 指 定 して、 複 数 チャンネルを 同 時 に 取 得 します。<br />

ビット bit31~bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 CH4 CH3 CH2 CH1<br />

pdwCounter<br />

カウンタ 値 を 格 納 する 配 列 のポインタを 指 定 してください。<br />

配 列 の 各 要 素 には 下 記 の 値 が 格 納 されます。<br />

取 得 範 囲 :0 ~ 4,294,967,295(FFFFFFFFh)<br />

dwCounter[0]<br />

チャンネル 1 のカウンタ 値<br />

dwCounter[1]<br />

チャンネル 2 のカウンタ 値<br />

dwCounter[2]<br />

チャンネル 3 のカウンタ 値<br />

dwCounter[3]<br />

チャンネル 4 のカウンタ 値<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

102


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwCounter[4];<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntReadCounter(nDevice, 0x0F, dwCounter);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwCounter: Array[0..3] of Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntReadCounter(nDevice, $0F, dwCounter[0]);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1~チャンネル 4 のカウンタ 値 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

103


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

33. UcntReadLatchCounter<br />

【 機 能 】<br />

ラッチカウンタ 値 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntReadLatchCounter(<br />

int nDevice, // デバイス 番 号<br />

unsigned long dwChSel, // チャンネル 選 択<br />

unsigned long* pdwLatchCounter // ラッチカウンタ 値 を 格 納<br />

// する 配 列 へのポインタ<br />

);<br />

●Kylix<br />

function UcntReadLatchCounter(<br />

nDevice: Integer; // デバイス 番 号<br />

dwChSel: Dword; // チャンネル 選 択<br />

var pdwLatchCounter: Dword // ラッチカウンタ 値 を 格 納<br />

// する 配 列 への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

dwChSel<br />

取 得 するチャンネルを 指 定 してください。<br />

各 チャンネルに 対 応 した bit に 1 を 指 定 して、 複 数 チャンネルを 同 時 に 取 得 します。<br />

ビット bit31~bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 CH4 CH3 CH2 CH1<br />

pdwLatchCounter<br />

ラッチカウンタ 値 を 格 納 する 配 列 のポインタを 指 定 してください。<br />

配 列 の 各 要 素 には 下 記 の 値 が 格 納 されます。<br />

取 得 範 囲 :0 ~ 4,294,967,295(FFFFFFFFh)<br />

dwLatchCounter[0] チャンネル 1 のラッチカウンタ 値<br />

dwLatchCounter[1] チャンネル 2 のラッチカウンタ 値<br />

dwLatchCounter[2] チャンネル 3 のラッチカウンタ 値<br />

dwLatchCounter[3] チャンネル 4 のラッチカウンタ 値<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

104


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwLatchCounter[4];<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntReadLatchCounter(nDevice, 0x0F, dwLatchCounter);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwLatchCounter: Array[0..3] of Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntReadLatchCounter(nDevice, $0F, dwLatchCounter[0]);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1~チャンネル 4 のラッチカウンタ 値 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

105


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

34. UcntSetComparator<br />

【 機 能 】<br />

比 較 カウンタ 値 を 設 定 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntSetComparator(<br />

int nDevice, // デバイス 番 号<br />

unsigned long dwChSel, // チャンネル 選 択<br />

unsigned long dwComSel, // コンパレータ 選 択<br />

unsigned long* pdwComparatorA, // 比 較 カウンタ A 設 定 値 を<br />

// 格 納 する 配 列 へのポインタ<br />

unsigned long* pdwComparatorB // 比 較 カウンタ B 設 定 値 を<br />

// 格 納 する 配 列 へのポインタ<br />

);<br />

●Kylix<br />

function UcntSetComparator(<br />

nDevice: Integer; // デバイス 番 号<br />

dwChSel: Dword; // チャンネル 選 択<br />

dwCmpSel: Dword; // コンパレータ 選 択<br />

var pdwComparatorA: Dword; // 比 較 カウンタ A 設 定 値 を<br />

// 格 納 する 配 列 への 参 照 渡 し<br />

var pdwComparatorB: Dword // 比 較 カウンタ B 設 定 値 を<br />

// 格 納 する 配 列 への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

dwChSel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

各 チャンネルに 対 応 した bit に 1 を 指 定 して、 複 数 チャンネルを 同 時 に 設 定 します。<br />

ビット bit31~bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 CH4 CH3 CH2 CH1<br />

dwCmpSel<br />

設 定 を 行 うコンパレータを 指 定 してください。<br />

dwCmpSel<br />

内 容<br />

0 比 較 カウンタ A,B に 対 して 設 定 を 行 う<br />

1 サブ 比 較 カウンタ A,B に 対 して 設 定 を 行 う<br />

サブ 比 較 カウンタ A,B への 設 定 を 行 った 場 合 、すぐに 比 較 カウンタ 設 定 は 変 更 されません。<br />

現 在 の 設 定 値 で 一 致 検 出 が 行 われた 直 後 に、 比 較 カウンタの 値 が 更 新 されます。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

106


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

pdwComparatorA<br />

比 較 カウンタ A 設 定 値 を 格 納 する 配 列 のポインタを 指 定 してください。<br />

配 列 の 各 要 素 には 下 記 の 値 を 格 納 します。<br />

設 定 範 囲 :0 ~ 4,294,967,295(FFFFFFFFh)<br />

dwComparatorA[0] チャンネル 1 の 比 較 カウンタ A 設 定<br />

dwComparatorA[1] チャンネル 2 の 比 較 カウンタ A 設 定<br />

dwComparatorA[2] チャンネル 3 の 比 較 カウンタ A 設 定<br />

dwComparatorA[3] チャンネル 4 の 比 較 カウンタ A 設 定<br />

pdwComparatorB<br />

比 較 カウンタ B 設 定 値 を 格 納 する 配 列 のポインタを 指 定 してください。<br />

配 列 の 各 要 素 には 下 記 の 値 を 格 納 します。<br />

設 定 範 囲 :0 ~ 4,294,967,295(FFFFFFFFh)<br />

dwComparatorB[0] チャンネル 1 の 比 較 カウンタ B 設 定<br />

dwComparatorB[1] チャンネル 2 の 比 較 カウンタ B 設 定<br />

dwComparatorB[2] チャンネル 3 の 比 較 カウンタ B 設 定<br />

dwComparatorB[3] チャンネル 4 の 比 較 カウンタ B 設 定<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwComparatorA[4];<br />

unsigned long dwComparatorB[4];<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

dwComparatorA[0] = 100;<br />

dwComparatorB[0] = 200;<br />

nRet = UcntSetComparator(nDevice, 0x01, 0, dwComparatorA, dwComparatorB);<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

107


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwComparatorA: Array[0..3] of Dword;<br />

dwComparatorB: Array[0..3] of Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

dwComparatorA[0] := 100;<br />

dwComparatorB[0] := 200;<br />

nRet := UcntSetComparator(nDevice, $01, 0, dwComparatorA[0], dwComparatorB[0]);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 の 比 較 カウンタ 値 (A=100、B=200)を 設 定 し<br />

ます。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

108


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

35. UcntGetComparator<br />

【 機 能 】<br />

比 較 カウンタ 設 定 値 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetComparator(<br />

int nDevice, // デバイス 番 号<br />

unsigned long dwChSel, // チャンネル 選 択<br />

unsigned long* pdwComparatorA, // 比 較 カウンタ A 設 定 値 を<br />

// 格 納 する 配 列 へのポインタ<br />

unsigned long* pdwComparatorB // 比 較 カウンタ B 設 定 値 を<br />

// 格 納 する 配 列 へのポインタ<br />

);<br />

●Kylix<br />

function UcntGetComparator(<br />

nDevice: Integer; // デバイス 番 号<br />

dwChSel: Dword; // チャンネル 選 択<br />

var pdwComparatorA: Dword; // 比 較 カウンタ A 設 定 値 を<br />

// 格 納 する 配 列 への 参 照 渡 し<br />

var pdwComparatorB: Dword // 比 較 カウンタ B 設 定 値 を<br />

// 格 納 する 配 列 への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

dwChSel<br />

取 得 するチャンネルを 指 定 してください。<br />

各 チャンネルに 対 応 した bit に 1 を 指 定 して、 複 数 チャンネルを 同 時 に 取 得 します。<br />

ビット bit31~bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 CH4 CH3 CH2 CH1<br />

pdwComparatorA<br />

比 較 カウンタ A 設 定 値 を 格 納 する 配 列 のポインタを 指 定 してください。<br />

配 列 の 各 要 素 には 下 記 の 値 が 格 納 されます。<br />

取 得 範 囲 :0 ~ 4,294,967,295(FFFFFFFFh)<br />

dwComparatorA[0] チャンネル 1 の 比 較 カウンタ A 設 定 値<br />

dwComparatorA[1] チャンネル 2 の 比 較 カウンタ A 設 定 値<br />

dwComparatorA[2] チャンネル 3 の 比 較 カウンタ A 設 定 値<br />

dwComparatorA[3] チャンネル 4 の 比 較 カウンタ A 設 定 値<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

109


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

pdwComparatorB<br />

比 較 カウンタ B 設 定 値 を 格 納 する 配 列 のポインタを 指 定 してください。<br />

配 列 の 各 要 素 には 下 記 の 値 が 格 納 されます。<br />

取 得 範 囲 :0 ~ 4,294,967,295(FFFFFFFFh)<br />

dwComparatorB[0] チャンネル 1 の 比 較 カウンタ B 設 定 値<br />

dwComparatorB[1] チャンネル 2 の 比 較 カウンタ B 設 定 値<br />

dwComparatorB[2] チャンネル 3 の 比 較 カウンタ B 設 定 値<br />

dwComparatorB[3] チャンネル 4 の 比 較 カウンタ B 設 定 値<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwComparatorA[4];<br />

unsigned long dwComparatorB[4];<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetComparator(nDevice, 0x01, dwComparatorA, dwComparatorB);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwComparatorA: Array[0..3] of Dword;<br />

dwComparatorB: Array[0..3] of Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntGetComparator(nDevice, $01, dwComparatorA[0], dwComparatorB[0]);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 の 比 較 カウンタ 設 定 値 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

110


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

36. UcntGetStatus<br />

【 機 能 】<br />

動 作 ステータス 情 報 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetStatus(<br />

int nDevice, // デバイス 番 号<br />

unsigned long dwChSel, // チャンネル 選 択<br />

unsigned long* pdwStatus // ステータスを 格 納 する 配 列<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function UcntGetStatus(<br />

nDevice: Integer; // デバイス 番 号<br />

dwChSel: Dword; // チャンネル 選 択<br />

var pdwStatus: Dword // ステータスを 格 納 する 配 列<br />

// への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

dwChSel<br />

取 得 するチャンネルを 指 定 してください。<br />

各 チャンネルに 対 応 した bit に 1 を 指 定 して、 複 数 チャンネルを 同 時 に 取 得 します。<br />

ビット bit31~bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 CH4 CH3 CH2 CH1<br />

pdwStatus<br />

ステータスを 格 納 する 配 列 へのポインタを 指 定 してください。<br />

配 列 の 各 要 素 には 下 記 の 値 が 格 納 されます。<br />

dwStatus[3]~dwStatus[0]:チャンネル 4~チャンネル 1 のステータス 情 報<br />

ビット bit31~bit14 bit13 bit12 bit11 bit10 bit9 bit8<br />

内 容 予 約 LTST1 LTST0 LBAFT LAAFT LBBEF LABEF<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 ST1 ST0 U/D LB LA Z B A<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

111


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

LB、LA、Z、B、A: 入 力 端 子 ステータス<br />

LB、LA、Z、B、A 内 容<br />

0 Low<br />

1 High<br />

U/D:カウント 方 向<br />

U/D<br />

内 容<br />

0 ダウンカウント<br />

1 アップカウント<br />

ST1、ST0:スタート/ストップステータス<br />

ST1 ST0 内 容<br />

0 0 ストップ<br />

0 1 スタート<br />

1 0 外 部 スタートウェイト<br />

1 1 未 使 用<br />

LBBEF、LABEF: 外 部 ラッチ 直 前 の LA、LB ステータス<br />

LBBEF、LABEF 内 容<br />

0 Low<br />

1 High<br />

LBAFT、LAAFT: 外 部 ラッチ 直 後 の LA、LB ステータス<br />

LBAFT、LAAFT 内 容<br />

0 Low<br />

1 High<br />

LTST1、LTST0:ラッチステータス<br />

LTST1 LTST0 内 容<br />

0 0 ラッチされていない<br />

0 1 ソフトラッチ<br />

1 0 外 部 ラッチ<br />

1 1 内 部 基 準 クロックラッチ<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

112


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

unsigned long dwStatus[4];<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetStatus(nDevice, 0x0F, dwStatus);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwStatus: array[0..3] of Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntGetStatus(nDevice, $0F, dwStatus[0]);<br />

デバイス 番 号 「1」のデバイスの CH1~CH4 のステータスを 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

113


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

37. UcntSetSamplingConfig<br />

【 機 能 】<br />

サンプリング 条 件 を 設 定 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntSetSamplingConfig(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

PUCNTSMPLCONFIG pSmplConfig // サンプリング 条 件 設 定<br />

// 構 造 体 へのポインタ<br />

);<br />

●Kylix<br />

function UcntSetSamplingConfig(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

var pSmplConfig: UCNTSAMPLCONFIG // サンプリング 条 件 設 定<br />

// 構 造 体 への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

pSmplConfig<br />

サンプリング 条 件 設 定 を 格 納 する UCNTSAMPLCONFIG 構 造 体 へのポインタを 指 定 してくださ<br />

い。<br />

構 造 体 の 説 明 については、『4.5 構 造 体 』をご 参 照 ください。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

114


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

UCNTSAMPLCONFIG SmplConfig;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

SmplConfig.dwSmplNum = 1000;<br />

SmplConfig.dwSmplEventNum = 100;<br />

SmplConfig.dwSmplRepeat = 1;<br />

SmplConfig.dwStatusMode = IFUCNT_ADD_STATUS;<br />

SmplConfig.dwErrCtrl = IFUCNT_FREERUN;<br />

nRet = UcntSetSamplingConfig(nDevice, 1, &SmplConfig);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

SmplConfig: UCNTSAMPLCONFIG;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

SmplConfig.dwSmplNum := 1000;<br />

SmplConfig.dwSmplEventNum := 100;<br />

SmplConfig.dwSmplRepeat := 1;<br />

SmplConfig.dwStatusMode := IFUCNT_ADD_STATUS;<br />

SmplConfig.dwErrCtrl := IFUCNT_FREERUN;<br />

nRet := UcntSetSamplingConfig(nDevice, 1, SmplConfig);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 のサンプリング 条 件 を 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

115


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

38. UcntGetSamplingConfig<br />

【 機 能 】<br />

サンプリング 条 件 設 定 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetSamplingConfig(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

PUCNTSMPLCONFIG pSmplConfig // サンプリング 条 件 取 得<br />

// 構 造 体 へのポインタ<br />

);<br />

●Kylix<br />

function UcntGetSamplingConfig(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

var pSmplConfig: UCNTSAMPLCONFIG // サンプリング 条 件 取 得<br />

// 構 造 体 への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

pSmplConfig<br />

サンプリング 条 件 設 定 を 格 納 する UCNTSAMPLCONFIG 構 造 体 へのポインタを 指 定 してくださ<br />

い。<br />

構 造 体 の 説 明 については、『4.5 構 造 体 』をご 参 照 ください。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

116


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

UCNTSAMPLCONFIG SmplConfig;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetSamplingConfig(nDevice, 1, &SmplConfig);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

SmplConfig: UCNTSAMPLCONFIG;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntGetSamplingConfig(nDevice, 1, SmplConfig);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 のサンプリング 条 件 設 定 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

117


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

39. UcntGetSamplingData<br />

【 機 能 】<br />

内 部 バッファからサンプリングデータを 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetSamplingData(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

Pvoid pSmplData, // サンプリングデータを 格 納<br />

// する 配 列 へのポインタ<br />

unsigned long* pdwDataNum // 取 得 データ 件 数 格 納 変 数<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function UcntGetSamplingData(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

pSmplData: Pointer; // サンプリングデータを 格 納<br />

// する 配 列 の 先 頭 アドレス<br />

var pdwDataNum: Dword // 取 得 データ 件 数 格 納 変 数<br />

// への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

サンプリングデータを 取 得 するチャンネルを 指 定 してください。<br />

pSmplData<br />

サンプリングデータを 格 納 する 配 列 へのポインタを 指 定 してください。<br />

pdwDataNum<br />

サンプリングデータの 取 得 を 希 望 する 件 数 を 格 納 した 変 数 のポインタを 指 定 します。<br />

関 数 が 正 常 終 了 後 、 実 際 に 取 得 したデータ 件 数 が 格 納 されます。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

118


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

void *pSmplData;<br />

unsigned long dwDataNum;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

dwDataNum = 1000;<br />

pSmplData = calloc( dwDataNum * 2 , sizeof(unsigned long));<br />

nRet = UcntGetSamplingData(nDevice, 1, pSmplData, &dwDataNum);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

pSmplData: Pointer;<br />

dwDataNum: Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

dwDataNum := 1000;<br />

pSmplData := AllocMem(dwDataNum * 2 * SizeOf(Dword));<br />

nRet := UcntGetSamplingData(nDevice, 1, pSmplData, dwDataNum);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 のサンプリングデータ(32bit カウンタ、ステー<br />

タス 情 報 あり)を 1000 件 分 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

119


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

40. UcntClearSamplingData<br />

【 機 能 】<br />

内 部 バッファをクリアします。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntClearSamplingData(<br />

int nDevice, // デバイス 番 号<br />

int nChannel // チャンネル 選 択<br />

);<br />

●Kylix<br />

function UcntClearSamplingData(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer // チャンネル 選 択<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

サンプリングデータをクリアするチャンネルを 指 定 してください。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntClearSamplingData(nDevice, 1);<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

120


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntClearSamplingData(nDevice, 1);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 のサンプリングデータ 格 納 用 内 部 バッファをク<br />

リアします。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

121


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

41. UcntGetSamplingStatus<br />

【 機 能 】<br />

サンプリングステータス 情 報 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetSamplingStatus(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long* pdwSmplStatus, // ステータスを 格 納 する 変 数<br />

// へのポインタ<br />

unsigned long* pdwSmplCount, // サンプリング 完 了 件 数 を 格 納<br />

// する 変 数 へのポインタ<br />

unsigned long* pdwRepCount // 繰 り 返 し 回 数 を 格 納 する 変 数<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function UcntGetSamplingStatus(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

var pdwSmplStatus: Dword; // ステータスを 格 納 する 変 数<br />

// への 参 照 渡 し<br />

var pdwSmplCount: Dword; // サンプリング 完 了 件 数 を 格 納<br />

// する 変 数 への 参 照 渡 し<br />

var pdwRepCount: Dword // 繰 り 返 し 回 数 を 格 納 する 変 数<br />

// への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

取 得 するチャンネルを 指 定 してください。<br />

pdwSmplStatus<br />

サンプリングステータスを 格 納 する 変 数 へのポインタを 指 定 してください。<br />

変 数 には 下 記 の 値 が 格 納 されます。<br />

値 識 別 子 内 容<br />

1 IFUCNT_SMPL_START サンプリング 動 作 中 です。<br />

2 IFUCNT_SMPL_STOP サンプリング 停 止 中 です。<br />

3 IFUCNT_SMPL_ERR_STOP エラーによりサンプリングが 中 止 されました。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

122


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

pdwSmplCount<br />

サンプリングが 完 了 した 件 数 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

pdwRepCount<br />

現 在 のサンプリング 繰 り 返 し 回 数 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

unsigned long dwSmplStatus;<br />

unsigned long dwSmplCount;<br />

unsigned long dwRepCount;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetSmplStatus(nDevice, 1, &dwSmplStatus,<br />

&dwSmplCount, &dwRepCount);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwSmplStatus: Dword;<br />

dwSmplCount: Dword;<br />

dwRepCount: Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntGetSmplStatus(nDevice, 1, dwSmplStatus,<br />

dwSmplCount, dwRepCount);<br />

デバイス 番 号 「1」のデバイスの CH1 のサンプリングステータスを 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

123


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

42. UcntStartCount<br />

【 機 能 】<br />

カウントを 開 始 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntStartCount(<br />

int nDevice, // デバイス 番 号<br />

unsigned long dwChSel, // チャンネル 選 択<br />

unsigned long dwStartMode // スタートモード<br />

);<br />

●Kylix<br />

function UcntStartCount(<br />

nDevice: Integer; // デバイス 番 号<br />

dwChSel: Dword; // チャンネル 選 択<br />

dwStartMode: Dword // スタートモード<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

dwChSel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

各 チャンネルに 対 応 した bit に 1 を 指 定 して、 複 数 チャンネルを 同 時 に 設 定 します。<br />

ビット bit31~bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 CH4 CH3 CH2 CH1<br />

dwStartMode<br />

スタートモードを 指 定 してください。<br />

識 別 子<br />

内 容<br />

IFUCNT_CMD_START<br />

ソフトスタート<br />

IFUCNT_CMD_EXWAIT 外 部 スタートウェイト<br />

( 外 部 トリガスタート)<br />

サンプリングを 開 始 する 場 合 は 下 記 の 識 別 子 を 指 定 してください。<br />

識 別 子<br />

内 容<br />

IFUCNT_CMD_SAMPLING サンプリングスタート<br />

※ サンプリング 開 始 とスタートモード 指 定 は 論 理 和 で 同 時 に 指 定 することが 可 能 です。<br />

StartMode = IFUCNT_CMD_START | IFUCNT_CMD_SAMPLING;<br />

StartMode = IFUCNT_CMD_EXWAIT | IFUCNT_CMD_SAMPLING;<br />

※ ソフトスタートと 外 部 スタートウェイトは 同 時 に 指 定 できません。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

124


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 備 考 】<br />

IFUCNT_CMD_EXWAIT を 指 定 した 場 合 、 外 部 入 力 スタートでのカウントスタートを 待 つ 状 態 とな<br />

ります。<br />

IFUCNT_CMD_SAMPLING はその 他 のコマンドと or で 指 定 します。このコマンドを 指 定 することで、<br />

予 め 設 定 されているドライバ 内 部 バッファに 対 してサンプリングデータの 転 送 を 開 始 します。<br />

UcntSetTriggerChannel 関 数 を 実 行 して、トリガチャンネルを 別 のチャンネルに 変 更 している<br />

場 合 には、サンプリングの 開 始 とカウンタスタートコマンドを 分 けて 実 行 する 必 要 があります。<br />

( 例 )<br />

・チャンネル 1 → チャンネル 3 のトリガ 条 件 を 使 用 、サンプリングを 行 う<br />

・チャンネル 2 → チャンネル 3 のトリガ 条 件 を 使 用 、サンプリングを 行 う<br />

・チャンネル 3 → チャンネル 3 のトリガ 条 件 を 使 用 、サンプリングを 行 わない<br />

UcntSetTriggerConfig(hDeviceHandle, 3, IFUCNT_LA_R, IFUCNT_LB_F);<br />

UcntSetTriggerChannel(hDeviceHandle, 1, 3, IFUCNT_TRG_NORMAL);<br />

UcntSetTriggerChannel(hDeviceHandle, 2, 3, IFUCNT_TRG_NORMAL);<br />

UcntSetTriggerChannel(hDeviceHandle, 3, 3, IFUCNT_TRG_NORMAL);<br />

// チャンネル 1、チャンネル 2 のサンプリングを 設 定<br />

UcntStartCount(hDeviceHandle, 0x03, IFUCNT_CMD_SAMPLING);<br />

// チャンネル 3 を 外 部 トリガ 待 ち 状 態 に 設 定<br />

UcntStartCount(hDeviceHandle, 0x04, IFUCNT_CMD_EXWAIT);<br />

※UcntSetTriggerChannel 関 数 による 同 期 制 御 と UcntStartCount への 複 数 チャンネルを 指 定<br />

した 場 合 の 動 作 の 違 いは、 下 記 の 様 になります。<br />

使 用 関 数 同 時 スタート 時 のタイムラグ スタート・ストップ 制 御<br />

UcntSetTriggerChannel なし 常 に 同 期<br />

UcntStartCount あり(1μs 程 度 ) 同 時 ・ 個 別 の 制 御 が 選 択 可 能<br />

( 関 数 実 行 時 の 設 定 )<br />

・UcntSetTriggerChannel を 使 用 する 場 合 、ハードウェアの 機 能 で 複 数 チャンネルの 同 期 制 御<br />

を 行 う 為 、 殆 どタイムラグ 無 しで 同 期 制 御 可 能 ですが、スタート・ストップの 制 御 が 全 て 同 期<br />

してしまいます。(スタートだけ 同 期 し、ストップは 個 別 制 御 といった 組 み 合 わせはできませ<br />

ん。)<br />

・UcntStartCount へ 複 数 チャンネルを 指 定 する 方 法 の 場 合 、ドライバ 内 で 連 続 的 に 複 数 チャン<br />

ネルのスタートを 開 始 する 為 、 各 チャンネル 間 の 出 力 には 多 少 のタイムラグが 発 生 しますが、<br />

スタート・ストップの 実 行 時 に 個 別 に 動 作 チャンネルを 指 定 できます。(スタートだけ 同 期 し、<br />

ストップは 個 別 制 御 といった 組 み 合 わせが 可 能 です。)<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

125


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntStartCount(nDevice, 0x0F, IFUCNT_CMD_START);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntStartCount(nDevice, $0F, IFUCNT_CMD_START);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1~チャンネル 4 のカウントを 開 始 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

126


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

43. UcntStopCount<br />

【 機 能 】<br />

カウントを 停 止 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntStopCount(<br />

int nDevice, // デバイス 番 号<br />

unsigned long dwChSel, // チャンネル 選 択<br />

unsigned long dwStopMode // ストップモード<br />

);<br />

●Kylix<br />

function UcntStopCount(<br />

nDevice: Integer; // デバイス 番 号<br />

dwChSel: Dword; // チャンネル 選 択<br />

dwStopMode: Dword // ストップモード<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

dwChSel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

各 チャンネルに 対 応 した bit に 1 を 指 定 して、 複 数 チャンネルを 同 時 に 設 定 します。<br />

ビット bit31~bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 CH4 CH3 CH2 CH1<br />

dwStopMode<br />

ストップモードを 指 定 してください。<br />

識 別 子<br />

内 容<br />

IFUCNT_CMD_STOP<br />

カウントストップ<br />

IFUCNT_CMD_SAMPLING サンプリングストップ<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

127


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntStopCount(nDevice, 0x01, IFUCNT_CMD_STOP | IFUCNT_CMD_SAMPLING);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntStopCount(nDevice, $01, IFUCNT_CMD_STOP | IFUCNT_CMD_SAMPLING);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 のカウントを 停 止 し、サンプリングを 終 了 しま<br />

す。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

128


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

44. UcntLatchCount<br />

【 機 能 】<br />

カウンタ 値 をラッチします。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntLatchCount(<br />

int nDevice, // デバイス 番 号<br />

unsigned long dwChSel // チャンネル 選 択<br />

);<br />

●Kylix<br />

function UcntLatchCount(<br />

nDevice: Integer; // デバイス 番 号<br />

dwChSel: Dword // チャンネル 選 択<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

dwChSel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

各 チャンネルに 対 応 した bit に 1 を 指 定 して、 複 数 チャンネルを 同 時 に 設 定 します。<br />

ビット bit31~bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 CH4 CH3 CH2 CH1<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntLatchCount(nDevice, 0x0F);<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

129


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntLatchCount(nDevice, $0F);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1~チャンネル 4 のカウンタ 値 をラッチします。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

130


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

45. UcntSetDOEnable<br />

【 機 能 】<br />

汎 用 出 力 の 機 能 を 設 定 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntSetDOEnable(<br />

int nDevice, // デバイス 番 号<br />

unsigned long dwOutEnable // 出 力 許 可 端 子 指 定<br />

);<br />

●Kylix<br />

function UcntSetDOEnable(<br />

nDevice: Integer; // デバイス 番 号<br />

dwOutEnable: Dword // 出 力 許 可 端 子 指 定<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

dwOutEnable<br />

出 力 許 可 を 行 う 端 子 を 指 定 してください。<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 IO7 IO6 IO5 IO4 IO3 IO2 IO1 IO0<br />

IO0:1A,1B,1Z,1LA 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 を 設 定 します。<br />

IO1:2A,2B,2Z,2LA 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 を 設 定 します。<br />

IO2:3A,3B,3Z,3LA 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 を 設 定 します。<br />

IO3:4A,4B,4Z,4LA 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 を 設 定 します。<br />

IO4:1LB,2LB,3LB,4LB 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 を 設 定 します。<br />

IO5:1OUTA,1OUTB,2OUTA,2OUTB 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 を 設 定 します。<br />

IO6:3OUTA,3OUTB,4OUTA,4OUTB 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 を 設 定 します。<br />

IO7:1CLR,1GATE,2CLR,2GATE 端 子 の 入 出 力 方 向 の 許 可 ・ 禁 止 を 設 定 します。<br />

IO0,IO1,IO2,IO3IO4,IO5,IO6,IO7<br />

内 容<br />

0 汎 用 出 力 を 禁 止<br />

1 汎 用 出 力 を 許 可<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

131


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 備 考 】<br />

●UcntOutputDO 関 数 について<br />

UcntOpen 関 数 でデバイスオープン 時 、デフォルトでは 各 チャンネルの OUTA,OUTB 端 子<br />

(IO5,IO6)のみ 出 力 を 許 可 された 状 態 となります。UcntOutputDO 関 数 を 使 用 する 前 には、<br />

UcntSetDOEnable 関 数 を 実 行 して 制 御 したい 端 子 の 出 力 許 可 設 定 を 行 う 必 要 があります。<br />

また、OUTA,OUTB 端 子 (IO5,IO6)の 汎 用 出 力 を 禁 止 に 設 定 すると、 分 周 出 力 ・パルスジェネレ<br />

ータ 出 力 が 出 力 されなくなります。これらのモードを 使 用 される 場 合 には OUTA,OUTB 端 子<br />

(IO5,IO6)の 汎 用 出 力 を 許 可 に 設 定 する 必 要 があります。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntSetDOEnable(nDevice, 0x61);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntSetDOEnable(nDevice, $61);<br />

デバイス 番 号 「1」のデバイスの 1A,1B,1Z,1LA と、1OUTA,1OUTB, 2OUTA,2OUTB,31OUTA,3OUTB,<br />

4OUTA,4OUTB の 汎 用 出 力 を 許 可 に 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

132


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

46. UcntGetDOEnable<br />

【 機 能 】<br />

汎 用 出 力 機 能 の 設 定 情 報 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetDOEnable(<br />

int nDevice, // デバイス 番 号<br />

unsigned long* pdwOutEnable // 出 力 許 可 状 態 取 得 変 数<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function UcntGetDOEnable(<br />

nDevice: Integer; // デバイス 番 号<br />

var pdwOutEnable: Dword // 出 力 許 可 状 態 取 得 変 数<br />

// への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

pdwOutEnable<br />

出 力 許 可 状 態 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 IO7 IO6 IO5 IO4 IO3 IO2 IO1 IO0<br />

IO0:1A,1B,1Z,1LA 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 状 態 を 取 得 します。<br />

IO1:2A,2B,2Z,2LA 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 状 態 を 取 得 します。<br />

IO2:3A,3B,3Z,3LA 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 状 態 を 取 得 します。<br />

IO3:4A,4B,4Z,4LA 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 状 態 を 取 得 します。<br />

IO4:1LB,2LB,3LB,4LB 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 状 態 を 取 得 します。<br />

IO5:1OUTA,1OUTB,2OUTA,2OUTB 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 状 態 を 取 得 します。<br />

IO6:3OUTA,3OUTB,4OUTA,4OUTB 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 状 態 を 取 得 します。<br />

IO7:1CLR,1GATE,2CLR,2GATE 端 子 の 入 出 力 方 向 の 許 可 ・ 禁 止 状 態 を 取 得 します。<br />

IO0,IO1,IO2,IO3IO4,IO5,IO6,IO7<br />

内 容<br />

0 汎 用 出 力 を 禁 止<br />

1 汎 用 出 力 を 許 可<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

133


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwOutEnabl;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetDOEnable(nDevice, &dwOutEnable);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwOutEnable: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntGetOutEnable(nDevice, dwOutEnable);<br />

デバイス 番 号 「1」の 汎 用 出 力 端 子 の 許 可 設 定 情 報 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

134


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

47. UcntInputDI<br />

【 機 能 】<br />

汎 用 入 力 の 状 態 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntInputDI(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long* pdwDI // 汎 用 入 力 状 態 取 得 変 数 へのポインタ<br />

);<br />

●Kylix<br />

function UcntInputDI(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Dword; // チャンネル 選 択<br />

var pdwDI: Dword // 汎 用 入 力 状 態 取 得 変 数 への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

汎 用 入 力 値 を 取 得 するチャンネルを 指 定 してください。<br />

指 定 範 囲 は、1~4 と IFUCNT_CH_HS になります。<br />

pdwDI<br />

入 力 状 態 の 取 得 変 数 へのポインタを 指 定 してください。<br />

(nChannel で 指 定 した 値 に 応 じて、 異 なる 端 子 の 状 態 を 取 得 します。)<br />

nChannel が 1~4 の 場 合<br />

ビット bit31~bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 OUTB OUTA LB LA Z B A<br />

PCI-632302 では 下 記 になります。<br />

ビット<br />

内 容<br />

bit31~bit16<br />

予 約<br />

ビット bit15~bit11 bit10 bit9 bit8<br />

内 容 予 約 IN3 IN2 IN1<br />

ビット bit7~bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 LB LA Z B A<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

135


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

nChannel が IFUCNT_CH_HS の 場 合<br />

ビット bit31~bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 2GATE 1GATE 2CLR 1CLR<br />

・ビットデータ = 1 → “High”<br />

・ビットデータ = 0 → “Low”<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

unsigned long dwDI;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntInputDI(nDevice, 1, &dwDI);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwDI: Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntInputDI(nDevice, 1, dwDI);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 の 汎 用 入 力 状 態 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

136


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

48. UcntOutputDO<br />

【 機 能 】<br />

汎 用 出 力 を 制 御 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntOutputDO(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long dwDO // 汎 用 出 力<br />

);<br />

●Kylix<br />

function UcntOutputDO(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Dword; // チャンネル 選 択<br />

dwDO: Dword // 汎 用 出 力<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

汎 用 出 力 を 制 御 するチャンネルを 指 定 してください。<br />

指 定 範 囲 は、1~4 と IFUCNT_CH_HS になります。<br />

dwDO<br />

汎 用 出 力 を 指 定 してください。<br />

(nChannel で 指 定 した 値 に 応 じて、 異 なる 端 子 の 状 態 を 制 御 します。)<br />

nChannel が 1~4 の 場 合<br />

ビット bit31~bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 OUTB OUTA LB LA Z B A<br />

PCI-632302 では 下 記 になります。<br />

ビット<br />

内 容<br />

bit31~bit16<br />

予 約<br />

ビット bit15~bit12 bit11 bit10 bit9 bit8<br />

内 容 予 約 OUT4 OUT3 OUT2 OUT1<br />

ビット bit7 bit6 bit5 bit4~bit0<br />

内 容 予 約 OUTB OUTA 予 約<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

137


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

nChannel が IFUCNT_CH_HS の 場 合<br />

ビット bit31~bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 2GATE 1GATE 2CLR 1CLR<br />

・ビットデータ = 1 → “High”<br />

・ビットデータ = 0 → “Low”<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 備 考 】<br />

PCI-632302 以 外 の 型 式 で 使 用 する 場 合<br />

●UcntOutputDO 使 用 時 の 注 意 事 項 について<br />

UcntOutputDO 関 数 では、A, B, Z, LA, LB 等 の 本 来 入 力 用 として 使 用 する 端 子 の 出 力 状 態 を<br />

変 更 することが 可 能 となります。その 為 、これらの 端 子 にパルス 出 力 を 行 う 外 部 機 器 を 接 続<br />

した 状 態 で UcntOutputDO 関 数 を 実 行 すると、 接 続 した 機 器 が 破 損 する 可 能 性 があります。<br />

UcntOutputDO 関 数 を 使 用 する 前 には 必 ず、 出 力 を 行 っても 問 題 ない 接 続 となっていることを<br />

ご 確 認 の 上 ご 使 用 下 さい。<br />

●UcntSetDOEnebale 関 数 について<br />

UcntOpen 関 数 でデバイスオープン 時 、デフォルトでは 各 チャンネルの OUTA,OUTB 端 子 のみ 出<br />

力 を 許 可 された 状 態 となります。UcntOutputDO 関 数 を 使 用 する 前 には、UcntSetDOEnable 関<br />

数 を 実 行 して 制 御 したい 端 子 の 出 力 許 可 設 定 を 行 ってから、 本 関 数 をご 使 用 下 さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwOutEnable;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetOutEnable(nDevice, &dwOutEnable);<br />

nRet = UcntSetOutEnable(nDevice, dwOutEnable | 0x01);<br />

nRet = UcntOutputDO(nDevice, 1, 0x01);<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

138


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwOutEnable: Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntGetDOEnable(nDevice, dwOutEnable);<br />

nRet := UcntSetDOEnable(nDevice, dwOutEnable | $01);<br />

nRet := UcntOutputDO(nDevice, 1, $01);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 の A を High に 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

139


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

49. UcntSetEventMask<br />

【 機 能 】<br />

割 り 込 みイベントのマスク 設 定 を 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntSetEventMask(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 指 定<br />

unsigned long dwEventMask // 割 り 込 みマスク<br />

);<br />

●Kylix<br />

function UcntSetEventMask(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

dwEventMask: Dword // 割 り 込 みマスク<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

dwEventMask<br />

割 り 込 みイベントのマスクデータを 指 定 してください。<br />

ビット bit23~bit19 bit18 bit17 bit16<br />

内 容 予 約 ORER SMPL<br />

EQ<br />

SMPL<br />

END<br />

ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8<br />

内 容 予 約 EX<br />

LOAD<br />

CLOCK<br />

LATCH<br />

EX<br />

LATCH<br />

PERR 予 約 EX<br />

STOP<br />

EX<br />

START<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 OUTB OUTB OUTA OUTA 予 約 予 約 BRF CRF<br />

FALL RISE FALL RISE<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

140


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

dwEventMask 1:アンマスク( 割 り 込 み 有 効 )<br />

0:マスク( 割 り 込 み 無 効 )<br />

CRF<br />

パルスカウンタキャリー 割 り 込 みイベントマスク<br />

BRF<br />

パルスカウンタボロー 割 り 込 みイベントマスク<br />

OUTA RISE OUTA の 一 致 検 出 割 り 込 みイベントマスク<br />

OUTA FALL OUTA の 一 致 解 除 割 り 込 みイベントマスク<br />

OUTB RISE OUTB の 一 致 検 出 割 り 込 みイベントマスク<br />

OUTB FALL OUTB の 一 致 解 除 割 り 込 みイベントマスク<br />

EX START 外 部 スタート 割 り 込 みイベントマスク<br />

EX STOP 外 部 ストップ 割 り 込 みイベントマスク<br />

PERR パルス 異 常 検 出 割 り 込 みイベントマスク<br />

EX LATCH 外 部 ラッチ 割 り 込 みイベントマスク<br />

CLOCK LATCH 基 準 クロックラッチ 割 り 込 みイベントマスク<br />

EX LOAD 外 部 プリロード 割 り 込 みイベントマスク<br />

SMPL END サンプリング 完 了 割 り 込 みイベントマスク<br />

SMPL EQ サンプリング 指 定 件 数 割 り 込 みイベントマスク<br />

ORER サンプリング 用 FIFO のオーバーランエラー 割 り 込 みイベントマス<br />

ク<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntSetEventMask(nDevice, 1, 0x03);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntSetEventMask(nDevice, 1, $03);<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

141


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 の 割 り 込 みイベントマスクを 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

142


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

50. UcntGetEventMask<br />

【 機 能 】<br />

割 り 込 みイベントのマスク 設 定 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntGetEventMask(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long* pdwEventMask // 割 り 込 みマスク 状 態 取 得 変 数<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function UcntGetEventMask(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

var pdwEventMask: Dword // 割 り 込 みマスク 状 態 取 得 変 数<br />

// への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

pdwEventMask<br />

割 り 込 みイベント 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

ビット bit23~bit19 bit18 bit17 bit16<br />

内 容 予 約 ORER SMPL<br />

EQ<br />

SMPL<br />

END<br />

ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8<br />

内 容 予 約 EX<br />

LOAD<br />

CLOCK<br />

LATCH<br />

EX<br />

LATCH<br />

PERR 予 約 EX<br />

STOP<br />

EX<br />

START<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 OUTB OUTB OUTA OUTA 予 約 予 約 BRF CRF<br />

FALL RISE FALL RISE<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

143


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

dwEventMask 1:アンマスク( 割 り 込 み 有 効 )<br />

0:マスク( 割 り 込 み 無 効 )<br />

CRF<br />

パルスカウンタキャリー 割 り 込 みイベントマスク<br />

BRF<br />

パルスカウンタボロー 割 り 込 みイベントマスク<br />

OUTA RISE OUTA の 一 致 検 出 割 り 込 みイベントマスク<br />

OUTA FALL OUTA の 一 致 解 除 割 り 込 みイベントマスク<br />

OUTB RISE OUTB の 一 致 検 出 割 り 込 みイベントマスク<br />

OUTB FALL OUTB の 一 致 解 除 割 り 込 みイベントマスク<br />

EX START 外 部 スタート 割 り 込 みイベントマスク<br />

EX STOP 外 部 ストップ 割 り 込 みイベントマスク<br />

PERR パルス 異 常 検 出 割 り 込 みイベントマスク<br />

EX LATCH 外 部 ラッチ 割 り 込 みイベントマスク<br />

CLOCK LATCH 基 準 クロックラッチ 割 り 込 みイベントマスク<br />

EX LOAD 外 部 プリロード 割 り 込 みイベントマスク<br />

SMPL END サンプリング 完 了 割 り 込 みイベントマスク<br />

SMPL EQ サンプリング 指 定 件 数 割 り 込 みイベントマスク<br />

ORER サンプリング 用 FIFO のオーバーランエラー 割 り 込 みイベントマス<br />

ク<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwEventMask;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntGetEventMask(nDevice, 1, &dwEventMask);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwEventMask: Dword;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

144


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

nRet := UcntGetEventMask(nDevice, 1, dwEventMask);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 の 割 り 込 みマスク 設 定 状 態 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

145


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

51. UcntSetEvent<br />

【 機 能 】<br />

割 り 込 み 発 生 時 に 起 動 するコールバック 関 数 、メッセージの 登 録 を 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntSetEvent(<br />

int nDevice, // デバイス 番 号<br />

PUCNTCALLBACK pCallBackProc, // コールバック 関 数<br />

unsigned long dwUser // ユーザデータ<br />

);<br />

●Kylix<br />

function UcntSetEvent(<br />

nDevice: Integer; // デバイス 番 号<br />

var pCallBackProc: UCNTCALLBACK; // コールバック 関 数<br />

dwUser: Dword // ユーザデータ<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

pCallBackProc<br />

割 り 込 み 発 生 時 に 呼 び 出 されるユーザ・コールバック 関 数 へのポインタを 指 定 してくださ<br />

い。<br />

dwUser<br />

コールバック 関 数 呼 び 出 し 時 に 引 数 に 渡 されるユーザデータを 指 定 してください。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 備 考 】<br />

●コールバック 関 数 の 書 式<br />

コールバック 関 数 の 書 式 は 以 下 の 通 りです。<br />

void pCallBackProc(int nChannel, unsigned long ulEvent, unsigned long ulUser);<br />

○nChannel<br />

割 り 込 み 発 生 チャンネル。<br />

○dwEvent<br />

コールバック 関 数 実 行 要 因 。<br />

コールバック 関 数 が 実 行 された 要 因 の 該 当 ビットに”1”がセットされます。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

146


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語 (コールバック 関 数 の 設 定 )<br />

// コールバック 関 数<br />

void EventProc(int nChannel, unsigned long ulEvent, unsigned long ulUser){<br />

// 割 り 込 み 処 理 を 記 述 します<br />

:<br />

:<br />

}<br />

// メインルーチン<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntSetEventMask(nDevice, 1, 0x03);<br />

nRet = UcntSetEvent(nDevice, EventProc, 0x1234);<br />

●Kylix(コールバック 関 数 の 設 定 )<br />

// コールバック 関 数<br />

procedure EventProc(nChannel: Integer, dwEvent: Dword, dwUser: Dword); stdcall;<br />

var<br />

// 変 数 定 義<br />

begin<br />

// 割 り 込 み 処 理 を 記 述 します<br />

:<br />

:<br />

end;<br />

// メインルーチン<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntSetEventMask(nDevice, 1, $03);<br />

nRet := UcntSetEvent(nDevice, @EventProc, $1234);<br />

デバイス 番 号 「1」のデバイスの CH1 の 割 り 込 みマスク、コールバック 関 数 を 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

147


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

52. UcntKillEvent<br />

【 機 能 】<br />

割 り 込 み 発 生 時 に 起 動 するコールバック 関 数 、メッセージの 解 除 を 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntKillEvent(<br />

int nDevice // デバイス 番 号<br />

);<br />

●Kylix<br />

function UcntKillEvent(<br />

nDevice: Integer // デバイス 番 号<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntKillEvent(nDevice);<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

148


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntKillEvent(nDevice);<br />

デバイス 番 号 「1」のデバイスのコールバック 関 数 の 解 除 を 行 います。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

149


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

53. UcntOutputSync<br />

【 機 能 】<br />

内 部 同 期 出 力 を 制 御 します。<br />

PCI-632302 でのみ 使 用 できます。<br />

【 書 式 】<br />

●C 言 語<br />

int UcntOutputSync(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

int TrgLine, // 同 期 ライン<br />

unsigned long TrgMode // トリガモード<br />

);<br />

●Kylix<br />

function UcntOutputSync(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Dword; // チャンネル 選 択<br />

TrgLine: Dword; // 同 期 ライン<br />

TrgMode: Dword // トリガモード<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

同 期 信 号 ラインを 制 御 するチャンネルを 指 定 してください。<br />

TrgLine<br />

制 御 する 同 期 ラインを 指 定 してください。<br />

識 別 子<br />

内 容<br />

IFUCNT_SYNC1 同 期 ライン 1<br />

IFUCNT_SYNC2 同 期 ライン 2<br />

TrgMode<br />

同 期 ラインのトリガモードを 指 定 してください。<br />

識 別 子<br />

内 容<br />

IFUCNT_DISABLE<br />

無 効<br />

IFUCNT_UPDN<br />

アップダウン<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

150


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 備 考 】<br />

・ 本 関 数 は、PCI-632302 でのみ 使 用 できます。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntSetOutEnable(nDevice, 1, IFUCNT_SYNC1, IFUCNT_UPDN);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntSetDOEnable(nDevice, 1, IFUCNT_SYNC1, IFUCNT_UPDN);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 の 内 部 同 期 ライン 1 からカウンタアップダウン<br />

を 有 効 に 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

151


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

54. UcntSetOUTAB<br />

【 機 能 】<br />

OUTA, OUTB の 初 期 出 力 (High ,Low)を 制 御 します。<br />

【 書 式 】<br />

●C 言 語<br />

Int UcntSetOUTAB(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long OutSignal, // 信 号 選 択<br />

unsigned long OutValue, // 出 力 値<br />

);<br />

●Kylix<br />

Function UcntSetOUTAB(<br />

NDevice: Integer; // デバイス 番 号<br />

Nchannel: Integer; // チャンネル 選 択<br />

OutSignal: Dword; // 信 号 選 択<br />

OutValue: Dword; // 出 力 値<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>u.so’;<br />

【パラメータ】<br />

nDevice<br />

UcntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

制 御 するチャンネルを 指 定 してください。<br />

OutSignal<br />

制 御 する 信 号 を 選 択 してください。<br />

識 別 子<br />

内 容<br />

IFUCNT_SET_OUTA<br />

OUTA を 制 御 します<br />

IFUCNT_SET_OUTB<br />

OUTB を 制 御 します<br />

OutValue<br />

出 力 するレベルを 選 択 してください。<br />

識 別 子<br />

内 容<br />

IFUCNT_HIGH<br />

出 力 を High にします。<br />

IFUCNT_LOW<br />

出 力 を Low にします。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFUCNT_ERROR_SUCCESSが 返 されます。<br />

IFUCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

152


【 備 考 】<br />

下 記 条 件 の 場 合 、 本 関 数 で 設 定 を 行 っても 値 は 反 映 されません。(High で 固 定 )<br />

<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

OUTA<br />

OUTB<br />

UcntSetComparatorConfig 関 数 のパラメ UcntSetComparatorConfig 関 数 のパラメ<br />

ータ「dwOUTAConfig」を「 一 致 検 出 無 効 」 ータ「dwOUTBConfig」を「 一 致 検 出 無 効 」<br />

としている 場 合<br />

に 設 定 している 場 合<br />

UcntSetFreqDividerMode 関 数 でパラメ<br />

ータ「dwOUTB」を「 出 力 なし」に 設 定 し<br />

ている 場 合<br />

UcntSetPulseGeneratorMode 関 数 でパラ<br />

メータ「dwOUTB」を「 出 力 なし」に 設 定<br />

している 場 合<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = UcntOpen(nDevice);<br />

:<br />

:<br />

nRet = UcntSetOUTAB(nDevice, 1, IFUCNT_SET_OUTA, IFUCNT_HIGH);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := UcntOpen(nDevice);<br />

:<br />

:<br />

nRet := UcntSetOUTAB(nDevice, 1, IFUCNT_SET_OUTA, IFUCNT_HIGH);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 の OUTA 端 子 から High を 出 力 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

153


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

4.3 DLL 関 数 一 覧 ( 高 速 カウンタ)<br />

No 関 数 名 機 能<br />

初 期 化<br />

55 HScntOpen デバイスをオープンします。<br />

56 HScntClose デバイスをクローズします。<br />

57 HScntGetDeviceInfo デバイス 情 報 を 取 得 します。<br />

58 HScntReset 各 種 設 定 の 初 期 化 、カウンタのクリアを 行 います。<br />

モード 設 定 / 取 得<br />

59 HScntSetMode カウンタのモードを 設 定 します。<br />

60 HScntGetMode カウンタのモード 設 定 情 報 を 取 得 します。<br />

カウンタ 値 取 得<br />

61 HScntReadCounter カウンタを 読 み 出 します。<br />

ステータス 取 得<br />

62 HScntGetStatus ステータス 情 報 を 取 得 します。<br />

カウンタ 制 御<br />

63 HScntStartCount カウンタを 開 始 します。<br />

64 HScntStopCount カウントを 停 止 します。<br />

割 り 込 み 設 定 / 取 得<br />

65 HScntSetEventMask イベントマスクを 設 定 します。<br />

66 HScntGetEventMask イベントマスクの 設 定 情 報 を 取 得 します。<br />

67 HScntSetEvent イベントコールバック 関 数 、メッセージを 登 録 します。<br />

68 HScntKillEvent イベントコールバック 関 数 、メッセージを 解 除 します。<br />

汎 用 入 出 力<br />

69 HScntSetDOEnable 汎 用 出 力 の 機 能 を 設 定 します。<br />

70 HScntGetDOEnable 汎 用 出 力 機 能 の 設 定 情 報 を 取 得 します。<br />

71 HScntInputDI 汎 用 入 力 の 状 態 を 取 得 します。<br />

72 HScntOutputDO 汎 用 出 力 を 制 御 します。<br />

インターバルタイマ 設 定 / 取 得<br />

73 HScntSetTimerConfig インターバルタイマを 設 定 します。<br />

74 HScntGetTimerConfig インターバルタイマの 設 定 情 報 を 取 得 します。<br />

75 HScntGetTimerCount インターバルタイマのカウント 値 を 取 得 します。<br />

デジタルフィルタ 設 定 / 取 得<br />

76 HScntSetFilter デジタルフィルタを 設 定 します。<br />

77 HScntGetFilter デジタルフィルタ 設 定 情 報 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

154


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

4.4 関 数 個 別 説 明 ( 高 速 カウンタ)<br />

55. HScntOpen<br />

【 機 能 】<br />

高 速 カウンタのオープンを 行 い、 以 後 のボードへのアクセスを 行 えるようにします。<br />

【 書 式 】<br />

●C 言 語<br />

int HScntOpen(<br />

int nDevice // デバイス 番 号<br />

);<br />

●Kylix<br />

function HScntOpen(<br />

nDevice: Integer // デバイス 番 号<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

nDevice<br />

オープンするボードのデバイス 番 号 を 指 定 してください。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = HScntOpen(nDevice);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

デバイス 番 号 「1」のデバイスをオープンします。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

155


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

56. HScntClose<br />

【 機 能 】<br />

高 速 カウンタをクローズします。<br />

デバイスアクセスのために 使 用 されていた 各 種 リソースの 解 放 を 行 い、 以 後 のデバイスへのア<br />

クセスを 禁 止 します。<br />

【 書 式 】<br />

●C 言 語<br />

int HScntClose(<br />

int nDevice // デバイス 番 号<br />

);<br />

●Kylix<br />

function HScntClose (<br />

nDevice: Integer // デバイス 番 号<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

nDevice<br />

HScntOpen 関 数 で 取 得 したデバイス 番 号 を 指 定 してください。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 備 考 】<br />

再 度 、デバイスへのアクセスを 行 う 場 合 にはオープン 処 理 (HScntOpen 関 数 )を 呼 び 出 してくだ<br />

さい。<br />

デバイスクローズ 後 、 各 種 設 定 はクリアされます。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = HScntOpen(nDevice);<br />

:<br />

:<br />

nRet = HScntClose(nDevice);<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

156


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntClose(nDevice);<br />

デバイス 番 号 「1」のデバイスのクローズ 処 理 を 行 います。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

157


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

57. HScntGetDeviceInfo<br />

【 機 能 】<br />

高 速 カウンタのデバイス 情 報 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int HScntGetDeviceInfo(<br />

int nDevice, // デバイス 番 号<br />

PHSCNTDEVICEINFO pDeviceInfo // HSCNTDEVICEINFO 構 造 体<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function HScntGetDeviceInfo(<br />

nDevice: Integer; // デバイス 番 号<br />

var pDeviceInfo: HSCNTDEVICEINFO // HSCNTDEVICEINFO 構 造 体<br />

// への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

nDevice<br />

HScntOpen 関 数 で 取 得 したデバイス 番 号 を 指 定 してください。<br />

pDeviceInfo<br />

取 得 したデバイス 情 報 を 格 納 する HSCNTDEVICEINFO 構 造 体 へのポインタを 指 定 してくださ<br />

い。<br />

構 造 体 の 説 明 については、『4.5 構 造 体 』をご 参 照 ください。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

HSCNTDEVICEINFO DeviceInfo;<br />

nDevice = 1;<br />

nRet = HScntOpen(nDevice);<br />

:<br />

:<br />

nRet = HScntGetDeviceInfo(nDevice, &DeviceInfo);<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

158


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

DeviceInfo: HSCNTDEVICEINFO;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntGetDeviceInfo(nDevice, DeviceInfo);<br />

デバイス 番 号 「1」のデバイスのデバイス 情 報 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

159


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

58. HScntReset<br />

【 機 能 】<br />

各 種 設 定 の 初 期 化 、カウンタのクリアを 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int HScntReset(<br />

int nDevice, // デバイス 番 号<br />

unsigned long dwChSel, // チャンネル 選 択<br />

unsigned long dwMode // リセット 項 目<br />

);<br />

●Kylix<br />

function HScntReset(<br />

nDevice: Integer; // デバイス 番 号<br />

dwChSel: Dword; // チャンネル 選 択<br />

dwMode: Dword // リセット 項 目<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

nDevice<br />

HScntOpen 関 数 で 取 得 したデバイス 番 号 を 指 定 してください。<br />

dwChSel<br />

各 種 設 定 の 初 期 化 、カウンタのクリアを 行 うチャンネルを 指 定 してください。<br />

ビット bit31~2 bit1 bit0<br />

内 容 予 約 CH2 CH1<br />

該 当 するビットに“1”を 指 定 してチャンネル 指 定 を 行 います。<br />

複 数 チャンネルの 指 定 が 可 能 です。<br />

dwMode<br />

リセット 項 目 を 指 定 してください。<br />

識 別 子<br />

意 味<br />

IFHSCNT_RESET_DEVICE 動 作 設 定 リセット<br />

指 定 チャンネルの 動 作 設 定 がリセットされデフォルト<br />

値 に 設 定 されます。<br />

サンプリング 中 の 場 合 はサンプリングを 停 止 します。<br />

IFHSCNT_RESET_COUNTER カウンタクリア<br />

カウンタをクリアします。<br />

該 当 する 識 別 子 を 指 定 してリセットを 行 います。<br />

動 作 設 定 リセットとカウンタクリアを 同 時 に 実 行 する 場 合 には、それぞれの 識 別 子 を OR<br />

で 指 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

160


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = HScntOpen(nDevice);<br />

:<br />

:<br />

nRet = HScntReset(nDevice, 0x01, IFHSCNT_RESET_DEVICE | IFHSCNT_CLEAR_COUNTER);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntReset(nDevice, $01, IFHSCNT_RESET_DEVICE | IFHSCNT_CLEAR_COUNTER);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 の 初 期 化 とカウンタリセットを 行 います。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

161


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

59. HScntSetMode<br />

【 機 能 】<br />

カウンタの 外 部 制 御 モードを 設 定 します。<br />

【 書 式 】<br />

●C 言 語<br />

int HScntSetMode(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long dwMode // カウントモード<br />

);<br />

●Kylix<br />

function HScntSetMode(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Dword; // チャンネル 選 択<br />

dwMode: Dword // カウントモード<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

nDevice<br />

HScntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

dwMode<br />

カウントモード 設 定 値 を 指 定 してください。<br />

ビット bit31~3 bit2 bit1 bit0<br />

内 容 予 約 CLR GATE 予 約<br />

GATE:GATE 信 号 によるカウンタ 外 部 イネーブル 機 能 の 設 定 を 行 います。<br />

GATE<br />

内 容<br />

0 外 部 イネーブル 機 能 無 効<br />

1 外 部 イネーブル 機 能 有 効<br />

CLR:CLR 信 号 によるカウンタ 外 部 クリア 機 能 の 設 定 を 行 います。<br />

CLR<br />

内 容<br />

0 外 部 クリア 機 能 無 効<br />

1 外 部 クリア 機 能 有 効<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

162


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = HScntOpen(nDevice);<br />

:<br />

:<br />

nRet = HScntSetMode(nDevice, 1, 0x06);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntSetMode(nDevice, 1, $06);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 の 外 部 イネーブル 機 能 と 外 部 クリア 機 能 を 有 効<br />

に 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

163


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

60. HScntGetMode<br />

【 機 能 】<br />

カウンタの 外 部 制 御 モードを 設 定 情 報 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int HScntGetMode(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long* *pdwMode // カウントモード 取 得<br />

// 変 数 へのポインタ<br />

);<br />

●Kylix<br />

function HScntGetMode(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Dword; // チャンネル 選 択<br />

var pdwMode: Dword // カウントモード 取 得<br />

// 変 数 への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

nDevice<br />

HScntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

取 得 を 行 うチャンネルを 指 定 してください。<br />

pdwMode<br />

カウントモード 設 定 情 報 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

ビット bit31~3 bit2 bit1 bit0<br />

内 容 予 約 CLR GATE 予 約<br />

GATE:GATE 信 号 によるカウンタ 外 部 イネーブル 機 能 の 設 定 を 取 得 します。<br />

GATE<br />

内 容<br />

0 外 部 イネーブル 機 能 無 効<br />

1 外 部 イネーブル 機 能 有 効<br />

CLR:CLR 信 号 によるカウンタ 外 部 クリア 機 能 の 設 定 を 取 得 します。<br />

CLR<br />

内 容<br />

0 外 部 クリア 機 能 無 効<br />

1 外 部 クリア 機 能 有 効<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

164


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwMode;<br />

nDevice = 1;<br />

nRet = HScntOpen(nDevice);<br />

:<br />

:<br />

nRet = HScntGetMode(nDevice, 2, &dwMode);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwMode: Dword;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntGetMode(nDevice, 2, dwMode);<br />

デバイス 番 号 「1」のデバイスのチャンネル 2 のカウンタモード 設 定 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

165


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

61. HScntReadCounter<br />

【 機 能 】<br />

カウンタ 値 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int HScntReadCounter(<br />

int nDevice, // デバイス 番 号<br />

unsigned long dwChSel, // チャンネル 選 択<br />

unsigned long* pdwCounter // カウンタ 値 を 格 納<br />

// する 配 列 へのポインタ<br />

);<br />

●Kylix<br />

function HScntReadCounter(<br />

nDevice: Integer; // デバイス 番 号<br />

dwChSel: Dword; // チャンネル 選 択<br />

var pdwCounter: Dword // カウンタ 値 を 格 納<br />

// する 配 列 への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

nDevice<br />

HscntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

dwChSel<br />

取 得 するチャンネルを 指 定 してください。<br />

各 チャンネルに 対 応 した bit に 1 を 指 定 して、 複 数 チャンネルを 同 時 に 取 得 します。<br />

ビット bit31~bit2 bit1 bit0<br />

内 容 予 約 CH2 CH1<br />

pdwCounter<br />

カウンタ 値 を 格 納 する 配 列 のポインタを 指 定 してください。<br />

配 列 の 各 要 素 には 下 記 の 値 が 格 納 されます。<br />

dwCounter[1]~dwCounter[0]:チャンネル 2~チャンネル 1 のカウンタ 値<br />

設 定 範 囲 :0 ~ 4,294,967,295(FFFFFFFFh)<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

166


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwCounter[2];<br />

nDevice = 1;<br />

nRet = HScntOpen(nDevice);<br />

:<br />

:<br />

nRet = HScntReadCounter(nDevice, 0x03, dwCounter);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwCounter: Array[0..1] of Dword;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntReadCounter(nDevice, $03, dwCounter[0]);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1~チャンネル 2 のカウンタ 値 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

167


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

62. HScntGetStatus<br />

【 機 能 】<br />

動 作 ステータス 情 報 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int HScntGetStatus(<br />

int nDevice, // デバイス 番 号<br />

unsigned long dwChSel, // チャンネル 選 択<br />

unsigned long* pdwStatus // ステータスを 格 納 する 配 列<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function HScntGetStatus(<br />

nDevice: Integer; // デバイス 番 号<br />

dwChSel: Dword; // チャンネル 選 択<br />

var pdwStatus: Dword // ステータスを 格 納 する 配 列<br />

// への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

nDevice<br />

HScntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

dwChSel<br />

取 得 するチャンネルを 指 定 してください。<br />

各 チャンネルに 対 応 した bit に 1 を 指 定 して、 複 数 チャンネルを 同 時 に 取 得 します。<br />

ビット bit31~bit2 bit1 bit0<br />

内 容 予 約 CH2 CH1<br />

pdwStatus<br />

ステータスを 格 納 する 配 列 へのポインタを 指 定 してください。<br />

配 列 の 各 要 素 には 下 記 の 値 が 格 納 されます。<br />

dwStatus[1]~dwStatus[0]:チャンネル 2~チャンネル 1 のステータス 情 報<br />

ビット bit31~bit7 bit6 bit5~bit3 bit2 bit1 bit0<br />

内 容 予 約 ST0 予 約 CLR GATE CLK<br />

ST0:スタートストップ 状 態<br />

ST0<br />

内 容<br />

0 ストップ<br />

1 スタート<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

168


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

CLK、GATE、CLR: 入 力 端 子 ステータス<br />

CLK、GATE、CLR 内 容<br />

0 Low<br />

1 High<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

unsigned long dwStatus[2];<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = HScntOpen(nDevice);<br />

:<br />

:<br />

nRet = HScntGetStatus(nDevice, 0x03, dwStatus);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwStatus: array[0..1] of Dword;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntGetStatus(nDevice, $03, dwStatus[0]);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1~チャンネル 2 のステータスを 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

169


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

63. HScntStartCount<br />

【 機 能 】<br />

カウントを 開 始 します。<br />

【 書 式 】<br />

●C 言 語<br />

int HScntStartCount(<br />

int nDevice, // デバイス 番 号<br />

unsigned long dwChSel, // チャンネル 選 択<br />

unsigned long dwStartMode // スタートモード<br />

);<br />

●Kylix<br />

function HScntStartCount(<br />

nDevice: Integer; // デバイス 番 号<br />

dwChSel: Dword; // チャンネル 選 択<br />

dwStartMode: Dword // スタートモード<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

nDevice<br />

HScntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

dwChSel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

各 チャンネルに 対 応 した bit に 1 を 指 定 して、 複 数 チャンネルを 同 時 に 設 定 します。<br />

ビット bit31~bit2 bit1 bit0<br />

内 容 予 約 CH2 CH1<br />

dwStartMode<br />

スタートモードを 指 定 してください。<br />

識 別 子<br />

内 容<br />

IFHSCNT_CMD_START<br />

カウントスタート<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

170


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = HScntOpen(nDevice);<br />

:<br />

:<br />

nRet = HScntStartCount(nDevice, 0x03, IFHSCNT_CMD_START);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntStartCount(nDevice, $03, IFHSCNT_CMD_START);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1~チャンネル 2 のカウントを 開 始 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

171


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

64. HScntStopCount<br />

【 機 能 】<br />

カウントを 停 止 します。<br />

【 書 式 】<br />

●C 言 語<br />

int HScntStopCount(<br />

int nDevice, // デバイス 番 号<br />

unsigned long dwChSel, // チャンネル 選 択<br />

unsigned long dwStopMode // ストップモード<br />

);<br />

●Kylix<br />

function HScntStopCount(<br />

nDevice: Integer; // デバイス 番 号<br />

dwChSel: Dword; // チャンネル 選 択<br />

dwStopMode: Dword // ストップモード<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

nDevice<br />

HScntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

dwChSel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

各 チャンネルに 対 応 した bit に 1 を 指 定 して、 複 数 チャンネルを 同 時 に 設 定 します。<br />

ビット bit31~bit2 bit1 bit0<br />

内 容 予 約 CH2 CH1<br />

dwStopMode<br />

ストップモードを 指 定 してください。<br />

識 別 子<br />

内 容<br />

IFHSCNT_CMD_STOP<br />

カウントストップ<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

172


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = HScntOpen(nDevice);<br />

:<br />

:<br />

nRet = HScntStopCount(nDevice, 0x01, IFHSCNT_CMD_STOP);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntStopCount(nDevice, $01, IFHSCNT_CMD_STOP);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 のカウントを 停 止 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

173


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

65. HScntSetEventMask<br />

【 機 能 】<br />

割 り 込 みイベントのマスク 設 定 を 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int HScntSetEventMask(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 指 定<br />

unsigned long dwEventMask // 割 り 込 みマスク<br />

);<br />

●Kylix<br />

function HScntSetEventMask(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

dwEventMask: Dword // 割 り 込 みマスク<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

nDevice<br />

HScntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

設 定 を 行 うチャンネルを 指 定 してください。<br />

IFHSCNT_EVENT_CH_TIMER、IFHSCNT_EVENT_CH_EDGE を 指 定 すると、インターバルタイマ 割<br />

り 込 みと 入 力 エッジ 割 り 込 みのマスク 設 定 を 行 うことができます。<br />

IFHSCNT_EVENT_CH_TIMER、IFHSCNT_EVENT_CH_EDGE は、LPC/PEX-632102 でのみ 指 定 可 能 で<br />

す。<br />

dwEventMask<br />

割 り 込 みイベントのマスクデータを 指 定 してください。<br />

・nChannel:1~2<br />

ビット<br />

内 容<br />

bit31~bit8<br />

予 約<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 CLR CLR GATE GATE 予 約 予 約 予 約 CRF<br />

FALL RISE FALL RISE<br />

dwEventMask 1:アンマスク( 割 り 込 み 有 効 )<br />

0:マスク( 割 り 込 み 無 効 )<br />

CRF<br />

カウンタキャリー 割 り 込 みマスク<br />

GATE RISE GATE 信 号 の 立 ち 上 がり 検 出 割 り 込 みマスク<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

174


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

GATE FALL<br />

CLR RISE<br />

CLR FALL<br />

GATE 信 号 の 立 ち 下 がり 検 出 割 り 込 みマスク<br />

CLR 信 号 の 立 ち 上 がり 検 出 割 り 込 みマスク<br />

CLR 信 号 の 立 ち 下 がり 検 出 割 り 込 みマスク<br />

・nChannel:IFHSCNT_EVENT_CH_TIMER<br />

ビット<br />

内 容<br />

bit31~bit8<br />

予 約<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 予 約 予 約 SIGT 予 約 予 約 予 約 予 約<br />

dwEventMask 1:アンマスク( 割 り 込 み 有 効 )<br />

0:マスク( 割 り 込 み 無 効 )<br />

SIGT インターバルタイマ 割 り 込 みマスク ※<br />

※インターバルタイマ 割 り 込 みマスクは LPC/PEX-632102 でのみ 設 定 可 能 です。<br />

・nChannel:IFHSCNT_EVENT_CH_EDGE<br />

ビット bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24<br />

内 容<br />

SF<br />

IN16<br />

SF<br />

IN15<br />

SF<br />

IN14<br />

SF<br />

IN13<br />

SF<br />

IN12<br />

SF<br />

IN11<br />

SF<br />

IN10<br />

SF<br />

IN9<br />

ビット bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16<br />

内 容 SF SF SF SF SF SF SF SF<br />

IN8 IN7 IN6 IN5 IN4 IN3 IN2 IN1<br />

ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8<br />

内 容 SR SR SR SR SR SR SR SR<br />

IN16 IN15 IN14 IN13 IN12 IN11 IN10 IN9<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 SR SR SR SR SR SR SR SR<br />

IN8 IN7 IN6 IN5 IN4 IN3 IN2 IN1<br />

dwEventMask 1:アンマスク( 割 り 込 み 有 効 )<br />

0:マスク( 割 り 込 み 無 効 )<br />

SR IN1 IN1~IN16 信 号 の 立 ち 上 がり 検 出 割 り 込 みマスク ※<br />

~<br />

SR IN16<br />

SF IN1 IN1~IN16 信 号 の 立 ち 下 がり 検 出 割 り 込 みマスク ※<br />

~<br />

SF IN16<br />

※エッジ 検 出 割 り 込 みマスクは LPC/PEX-632102 でのみ 設 定 可 能 です。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

175


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = HScntOpen(nDevice);<br />

:<br />

:<br />

nRet = HScntSetEventMask(nDevice, 1, 0x01);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntSetEventMask(nDevice, 1, $01);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 のカウンタキャリー 割 り 込 みイベントを 有 効 に<br />

設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

176


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

66. HScntGetEventMask<br />

【 機 能 】<br />

割 り 込 みイベントのマスク 設 定 を 取 得 します。<br />

【 書 式 】<br />

●C 言 語<br />

int HScntGetEventMask(<br />

int nDevice, // デバイス 番 号<br />

int nChannel, // チャンネル 選 択<br />

unsigned long* pdwEventMask // 割 り 込 みマスク 状 態 取 得 変 数<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function HScntGetEventMask(<br />

nDevice: Integer; // デバイス 番 号<br />

nChannel: Integer; // チャンネル 選 択<br />

var pdwEventMask: Dword // 割 り 込 みマスク 状 態 取 得 変 数<br />

// への 参 照 渡 し<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

nDevice<br />

HScntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

nChannel<br />

取 得 を 行 うチャンネルを 指 定 してください。<br />

HSCNT_EVENT_CH_TIMER、HSCNT_EVENT_CH_EDGE を 指 定 すると、インターバルタイマ 割 り 込<br />

みと 入 力 エッジ 割 り 込 みのマスク 設 定 値 を 取 得 することができます。<br />

HSCNT_EVENT_CH_TIMER、HSCNT_EVENT_CH_EDGE は、LPC/PEX-632102 でのみ 指 定 可 能 です。<br />

pdwEventMask<br />

割 り 込 みイベント 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

・nChannel:1~2<br />

ビット<br />

内 容<br />

bit31~bit8<br />

予 約<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 CLR CLR GATE GATE 予 約 予 約 予 約 CRF<br />

FALL RISE FALL RISE<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

177


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

dwEventMask 1:アンマスク( 割 り 込 み 有 効 )<br />

0:マスク( 割 り 込 み 無 効 )<br />

CRF<br />

カウンタキャリー 割 り 込 みマスク<br />

GATE RISE GATE 信 号 の 立 ち 上 がり 検 出 割 り 込 みマスク<br />

GATE FALL GATE 信 号 の 立 ち 下 がり 検 出 割 り 込 みマスク<br />

CLR RISE CLR 信 号 の 立 ち 上 がり 検 出 割 り 込 みマスク<br />

CLR FALL CLR 信 号 の 立 ち 下 がり 検 出 割 り 込 みマスク<br />

・nChannel:HSCNT_EVENT_CH_TIMER<br />

ビット<br />

内 容<br />

bit31~bit8<br />

予 約<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 予 約 予 約 SIGT 予 約 予 約 予 約 予 約<br />

dwEventMask 1:アンマスク( 割 り 込 み 有 効 )<br />

0:マスク( 割 り 込 み 無 効 )<br />

SIGT インターバルタイマ 割 り 込 みマスク ※<br />

※インターバルタイマ 割 り 込 みマスク 設 定 は LPC/PEX-632102 でのみ 取 得 可 能 です。<br />

・nChannel:HSCNT_EVENT_CH_EDGE<br />

ビット bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24<br />

内 容<br />

SF<br />

IN16<br />

SF<br />

IN15<br />

SF<br />

IN14<br />

SF<br />

IN13<br />

SF<br />

IN12<br />

SF<br />

IN11<br />

SF<br />

IN10<br />

SF<br />

IN9<br />

ビット bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16<br />

内 容 SF SF SF SF SF SF SF SF<br />

IN8 IN7 IN6 IN5 IN4 IN3 IN2 IN1<br />

ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8<br />

内 容 SR SR SR SR SR SR SR SR<br />

IN16 IN15 IN14 IN13 IN12 IN11 IN10 IN9<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 SR SR SR SR SR SR SR SR<br />

IN8 IN7 IN6 IN5 IN4 IN3 IN2 IN1<br />

dwEventMask 1:アンマスク( 割 り 込 み 有 効 )<br />

0:マスク( 割 り 込 み 無 効 )<br />

SR IN1 IN1~IN16 信 号 の 立 ち 上 がり 検 出 割 り 込 みマスク ※<br />

~<br />

SR IN16<br />

SF IN1 IN1~IN16 信 号 の 立 ち 下 がり 検 出 割 り 込 みマスク ※<br />

~<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

178


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

SF IN16<br />

※エッジ 検 出 割 り 込 みマスク 設 定 は LPC/PEX-632102 でのみ 取 得 可 能 です。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwEventMask;<br />

nDevice = 1;<br />

nRet = HScntOpen(nDevice);<br />

:<br />

:<br />

nRet = HScntGetEventMask(nDevice, 1, &dwEventMask);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwEventMask: Dword;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntGetEventMask(nDevice, 1, dwEventMask);<br />

デバイス 番 号 「1」のデバイスのチャンネル 1 の 割 り 込 みマスク 設 定 状 態 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

179


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

67. HScntSetEvent<br />

【 機 能 】<br />

割 り 込 み 発 生 時 に 起 動 するコールバック 関 数 、メッセージの 登 録 を 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int HScntSetEvent(<br />

int nDevice, // デバイス 番 号<br />

PHSCNTCALLBACK pCallBackProc,<br />

// コールバック 関 数<br />

unsigned long dwUser // ユーザデータ<br />

);<br />

●Kylix<br />

function HScntSetEvent(<br />

nDevice: Integer; // デバイス 番 号<br />

var pCallBackProc: HSCNTCALLBACK; // コールバック 関 数<br />

dwUser: Dword // ユーザデータ<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

nDevice<br />

HScntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

pCallBackProc<br />

割 り 込 み 発 生 時 に 呼 び 出 されるユーザ・コールバック 関 数 へのポインタを 指 定 してくださ<br />

い。<br />

dwUser<br />

コールバック 関 数 呼 び 出 し 時 に 引 数 に 渡 されるユーザデータを 指 定 してください。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 備 考 】<br />

●コールバック 関 数 の 書 式<br />

コールバック 関 数 の 書 式 (C 言 語 )は 以 下 の 通 りです。<br />

void pCallBackProc(int nChannel, unsigned long ulEvent, unsigned long ulUser );<br />

○nChannel<br />

割 り 込 み 発 生 チャンネル。<br />

○ulEvent<br />

コールバック 関 数 実 行 要 因 。<br />

コールバック 関 数 が 実 行 された 要 因 の 該 当 ビットに”1”がセットされます。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

180


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語 (コールバック 関 数 )<br />

// コールバック 関 数<br />

void EventProc(int nChannel, unsigned long ulEvent, unsigned long ulUser){<br />

// 割 り 込 み 処 理 を 記 述 します<br />

:<br />

:<br />

}<br />

// メインルーチン<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = HScntOpen(nDevice);<br />

:<br />

:<br />

nRet = HScntSetEventMask(nDevice, 1, 0xF1);<br />

nRet = HScntSetEvent(nDevice, EventProc, 0x1234);<br />

●Kylix(コールバック 関 数 )<br />

// コールバック 関 数<br />

procedure EventProc(nChannel: Integer, dwEvent: Dword, dwUser:Dword); stdcall;<br />

var<br />

// 変 数 定 義<br />

begin<br />

// 割 り 込 み 処 理 を 記 述 します<br />

:<br />

:<br />

end;<br />

// メインルーチン<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntSetEventMask(nDevice, 1, $F1);<br />

nRet := HScntSetEvent(nDevice, @EventProc, $1234);<br />

デバイス 番 号 「1」のデバイスの CH1 の 割 り 込 みマスク、コールバック 関 数 を 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

181


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

68. HScntKillEvent<br />

【 機 能 】<br />

割 り 込 み 発 生 時 に 起 動 するコールバック 関 数 、メッセージの 解 除 を 行 います。<br />

【 書 式 】<br />

●C 言 語<br />

int HScntKillEvent(<br />

int nDevice // デバイス 番 号<br />

);<br />

●Kylix<br />

function HScntKillEvent(<br />

nDevice: Integer // デバイス 番 号<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

nDevice<br />

HScntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = HScntOpen(nDevice);<br />

:<br />

:<br />

nRet = HScntKillEvent(nDevice);<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

182


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntKillEvent(nDevice);<br />

デバイス 番 号 「1」のデバイスのコールバック 関 数 の 解 除 を 行 います。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

183


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

69. HScntSetDOEnable<br />

【 機 能 】<br />

汎 用 出 力 の 機 能 を 設 定 します。<br />

※この 関 数 は 下 記 、 製 品 型 式 のみ 対 応 しています。ご 注 意 ください。<br />

LPC-632102、PEX-632102<br />

【 書 式 】<br />

●C 言 語<br />

INT HScntSetDOEnable(<br />

int nDevice // デバイス 番 号<br />

unsigned long dwOutEnable // 出 力 許 可 端 子 指 定<br />

);<br />

●Kylix<br />

function HScntSetDOEnable(<br />

nDevice: Integer; // デバイス 番 号<br />

dwOutEnable: Dword // 出 力 許 可 端 子 指 定<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

nDevice<br />

HScntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

dwOutEnable<br />

出 力 許 可 を 行 う 端 子 を 指 定 してください。<br />

ビット<br />

bit31~bit8<br />

内 容<br />

予 約<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 予 約 予 約 予 約 IO3 IO2 IO1 IO0<br />

IO0:OUT1~OUT4 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 を 設 定 します。<br />

IO1:OUT5~OUT8 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 を 設 定 します。<br />

IO2:OUT9~OUT12 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 を 設 定 します。<br />

IO3:OUT13~OUT16 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 を 設 定 します。<br />

IO0,IO1,IO2,IO3<br />

内 容<br />

0 汎 用 出 力 を 禁 止<br />

1 汎 用 出 力 を 許 可<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 備 考 】<br />

●HScntOutputDO 関 数 について<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

184


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

HScntOpen 関 数 でデバイスオープン 時 、デフォルトでは OUT1~OUT16 端 子 は 出 力 禁 止 状 態 とな<br />

っています。HScntOutputDO 関 数 を 使 用 する 際 は、HScntSetDOEnable 関 数 を 実 行 して 制 御 した<br />

い 端 子 の 出 力 許 可 設 定 を 行 う 必 要 があります。<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

nDevice = 1;<br />

nRet = HScntOpen(nDevice);<br />

:<br />

:<br />

nRet = HScntSetDOEnable(nDevice, 0x01);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntSetDOEnable(nDevice, $01);<br />

デバイス 番 号 「1」のデバイスの OUT1~OUT4 端 子 の 汎 用 出 力 を 許 可 に 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

185


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

70. HScntGetDOEnable<br />

【 機 能 】<br />

汎 用 出 力 機 能 の 設 定 情 報 を 取 得 します。<br />

※この 関 数 は 下 記 、 製 品 型 式 のみ 対 応 しています。ご 注 意 ください。<br />

LPC-632102、PEX-632102<br />

【 書 式 】<br />

●C 言 語<br />

INT HScntGetDOEnable(<br />

int nDevice // デバイス 番 号<br />

unsigned long* pdwOutEnable // 出 力 許 可 状 態 取 得 変 数<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function HScntGetDOEnable(<br />

nDevice: Integer; // デバイス 番 号<br />

var dwOutEnable: Dword // 出 力 許 可 状 態 取 得 変 数<br />

// へのポインタ<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

nDevice<br />

HScntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

pdwOutEnable<br />

出 力 許 可 状 態 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

ビット<br />

bit31~bit8<br />

内 容<br />

予 約<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 予 約 予 約 予 約 IO3 IO2 IO1 IO0<br />

IO0:OUT1~OUT4 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 状 態 を 取 得 します。<br />

IO1:OUT5~OUT8 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 状 態 を 取 得 します。<br />

IO2:OUT9~OUT12 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 状 態 を 取 得 します。<br />

IO3:OUT13~OUT16 端 子 の 汎 用 出 力 の 許 可 ・ 禁 止 状 態 を 取 得 します。<br />

IO0,IO1,IO2,IO3<br />

内 容<br />

0 汎 用 出 力 を 禁 止<br />

1 汎 用 出 力 を 許 可<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

186


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

int nRet;<br />

int nDevice;<br />

unsigned long dwOutEnable;<br />

nDevice = 1;<br />

nRet = HScntOpen(nDevice);<br />

:<br />

:<br />

nRet = HScntGetDOEnable(nDevice, &dwOutEnable);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwOutEnable: Dword;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntGetDOEnable(nDevice, dwOutEnable);<br />

デバイス 番 号 「1」の 汎 用 出 力 端 子 の 許 可 設 定 情 報 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

187


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

71. HScntInputDI<br />

【 機 能 】<br />

汎 用 入 力 の 状 態 を 取 得 します。<br />

※この 関 数 は 下 記 、 製 品 型 式 のみ 対 応 しています。ご 注 意 ください。<br />

LPC-632102、PEX-632102<br />

【 書 式 】<br />

●C 言 語<br />

INT HScntInputDI(<br />

int nDevice // デバイス 番 号<br />

unsigned long* pdwDI // 汎 用 入 力 状 態 取 得 変 数 へのポインタ<br />

);<br />

●Kylix<br />

function HScntInputDI(<br />

nDevice: Integer; // デバイス 番 号<br />

var pdwDI: Dword // 汎 用 入 力 状 態 取 得 変 数 へのポインタ<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

nDevice<br />

HScntOpen 関 数 で 取 得 したボードのデバイス 番 号 を 指 定 してください。<br />

pdwDI<br />

入 力 状 態 の 取 得 変 数 へのポインタを 指 定 してください。<br />

ビット<br />

bit31~bit16<br />

内 容<br />

予 約<br />

ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8<br />

内 容 IN16 IN15 IN14 IN13 IN12 IN11 IN10 IN9<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 IN8 IN7 IN6 IN5 IN4 IN3 IN2 IN1<br />

・ビットデータ = 1 → “High”<br />

・ビットデータ = 0 → “Low”<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

188


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

Int nRet;<br />

Int nDevice;<br />

Unsigned long dwDI;<br />

NDevice = 1;<br />

NRet = HScntOpen(nDevice);<br />

:<br />

:<br />

nRet = HScntInputDI(nDevice, &dwDI);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwDI: Dword;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntInputDI(nDevice, dwDI);<br />

デバイス 名 「IFHSCNT1」のデバイスの IN1~IN16 の 汎 用 入 力 状 態 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

189


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

72. HScntOutputDO<br />

【 機 能 】<br />

汎 用 出 力 を 制 御 します。<br />

※この 関 数 は 下 記 、 製 品 型 式 のみ 対 応 しています。ご 注 意 ください。<br />

LPC-632102、PEX-632102<br />

【 書 式 】<br />

●C 言 語<br />

INT HScntOutputDO(<br />

int nDevice // デバイス 番 号<br />

unsigned long dwDO<br />

// 汎 用 出 力<br />

);<br />

●Kylix<br />

function HScntOutputDO(<br />

nDevice: Integer; // デバイス 番 号<br />

dwDO: Dword // 汎 用 出 力<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

hDeviceHandle<br />

HScntOpen 関 数 で 取 得 した<strong>インタフェース</strong>モジュールのデバイスハンドルを 指 定 してくだ<br />

さい。<br />

dwDO<br />

汎 用 出 力 を 指 定 してください。<br />

ビット<br />

内 容<br />

bit31~bit16<br />

予 約<br />

ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8<br />

内 容 OUT16 OUT15 OUT14 OUT13 OUT12 OUT11 OUT10 OUT9<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 OTU8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1<br />

・ビットデータ = 1 → “High”<br />

・ビットデータ = 0 → “Low”<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

190


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 備 考 】<br />

●HScntOutputDO 使 用 時 の 注 意 事 項 について<br />

HScntOutputDO 関 数 では、IN1/OUT1~IN16/OUT16 等 の 入 出 力 共 用 として 使 用 可 能 な 端 子 の 出 力<br />

状 態 を 変 更 することが 可 能 です。その 為 、これらの 端 子 に 出 力 を 行 う 外 部 機 器 を 接 続 した 状 態<br />

で HScntOutputDO 関 数 を 実 行 すると、 接 続 した 機 器 が 破 損 する 可 能 性 があります。<br />

HScntOutputDO 関 数 を 使 用 する 際 は 必 ず、 出 力 を 行 っても 問 題 ない 接 続 となっていることをご<br />

確 認 の 上 ご 使 用 下 さい。<br />

●HScntSetDOEnebale 関 数 について<br />

HScntOpen 関 数 でデバイスオープン 時 、デフォルトでは OUT1~OUT16 端 子 は 出 力 禁 止 状 態 とな<br />

っています。HScntOutputDO 関 数 を 使 用 する 際 は、HScntSetDOEnable 関 数 を 実 行 して 制 御 した<br />

い 端 子 の 出 力 許 可 設 定 を 行 ってから、 本 関 数 をご 使 用 下 さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

Int nRet;<br />

Int nDevice;<br />

nDevice = 1;<br />

nRet = HScntOpen(nDevice);<br />

:<br />

:<br />

nRet = HScntSetOutEnable(nDevice, 0x01);<br />

nRet = HScntOutputDO(nDevice, 0x01);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntSetDOEnable(nDevice, $01);<br />

nRet := HScntOutputDO(nDevice, $01);<br />

デバイス 名 「IFHSCNT1」のデバイスの OUT1 端 子 を High に 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

191


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

73. HScntSetTimerConfig<br />

【 機 能 】<br />

インターバルタイマを 設 定 します。<br />

※この 関 数 は 下 記 、 製 品 型 式 のみ 対 応 しています。ご 注 意 ください。<br />

LPC-632102、PEX-632102<br />

【 書 式 】<br />

●C 言 語<br />

INT HScntSetTimerConfig(<br />

int nDevice // デバイス 番 号<br />

unsigned char bTimerConfigValue // タイマ 設 定 値<br />

);<br />

●Kylix<br />

function HScntSetTimerConfig(<br />

nDevice: Integer; // デバイス 番 号<br />

bTimerConfigValue: Byte // タイマ 設 定 値<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

hDeviceHandle<br />

HScntOpen 関 数 で 取 得 した<strong>インタフェース</strong>モジュールのデバイスハンドルを 指 定 してくだ<br />

さい。<br />

bTimerConfigValue<br />

インターバルタイマの 設 定 値 を 指 定 してください。<br />

タイマ 周 期 は CTL5~CTL7 で 設 定 した 基 準 周 期 と、CTL1~CTL4 で 設 定 した 分 周 値 の 積 とな<br />

ります。( 周 期 = 基 準 周 期 × 分 周 値 )<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 CTL7 CTL6 CTL5 CTL4 CTL3 CTL2 CTL1<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

192


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

CTL1~CTL4 分 周 値 設 定<br />

CTL4 CTL3 CTL2 CTL1<br />

タイマ 停 止 0 0 0 0<br />

1 分 周 0 0 0 1<br />

2 分 周 0 0 1 0<br />

3 分 周 0 0 1 1<br />

4 分 周 0 1 0 0<br />

5 分 周 0 1 0 1<br />

6 分 周 0 1 1 0<br />

7 分 周 0 1 1 1<br />

8 分 周 1 0 0 0<br />

9 分 周 1 0 0 1<br />

10 分 周 1 0 1 0<br />

11 分 周 1 0 1 1<br />

12 分 周 1 1 0 0<br />

13 分 周 1 1 0 1<br />

14 分 周 1 1 1 0<br />

15 分 周 1 1 1 1<br />

CTL5~CTL7 基 準 周 期 設 定<br />

CTL7 CTL6 CTL5<br />

10μs 0 0 0<br />

100μs 0 0 1<br />

1ms 0 1 0<br />

10ms 0 1 1<br />

100ms 1 0 0<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 備 考 】<br />

インターバルタイマ 割 り 込 みを 使 用 する 場 合 は、HScntSetEventMask 関 数 と HScntSetEvent 関 数<br />

を 実 行 してインターバルタイマの 割 り 込 み 要 因 を 有 効 にし、イベントを 登 録 する 必 要 がありま<br />

す。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

193


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

Int nRet;<br />

Int nDevice;<br />

nDevice = 1;<br />

hDeviceHandle = HScntOpen(“IFHSCNT1”);<br />

:<br />

:<br />

nRet = HScntSetTimerConfig(hDeviceHandle, 0x4A);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntSetTimerConfig(nDevice, $4A);<br />

デバイス 名 「IFHSCNT1」のデバイスのインターバルタイマを 1s(100ms×10)に 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

194


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

74. HScntGetTimerConfig<br />

【 機 能 】<br />

インターバルタイマの 設 定 情 報 を 取 得 します。<br />

※この 関 数 は 下 記 、 製 品 型 式 のみ 対 応 しています。ご 注 意 ください。<br />

LPC-632102、PEX-632102<br />

【 書 式 】<br />

●C 言 語<br />

INT HScntGetTimerConfig(<br />

int nDevice // デバイス 番 号<br />

unsigned char* pbTimerConfigValue // インターバルタイマ 設 定<br />

// 格 納 変 数 へのポインタ<br />

);<br />

●Kylix<br />

function HScntGetTimerConfig(<br />

nDevice: Integer; // デバイス 番 号<br />

var pbTimerConfigValue: Byte // インターバルタイマ 設 定<br />

// 格 納 変 数 へのポインタ<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

hDeviceHandle<br />

HScntOpen 関 数 で 取 得 した<strong>インタフェース</strong>モジュールのデバイスハンドルを 指 定 してくだ<br />

さい。<br />

bTimerConfigValue<br />

インターバルタイマの 設 定 情 報 を 格 納 する 変 数 へのポインタ( 参 照 渡 し)を 指 定 してくだ<br />

さい。<br />

タイマ 周 期 は CTL5~CTL7 で 設 定 した 基 準 周 期 と、CTL1~CTL4 で 設 定 した 分 周 値 の 積 とな<br />

ります。( 周 期 = 基 準 周 期 × 分 周 値 )<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 CTL7 CTL6 CTL5 CTL4 CTL3 CTL2 CTL1<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

195


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

CTL1~CTL4 分 周 値 設 定<br />

CTL4 CTL3 CTL2 CTL1<br />

タイマ 停 止 0 0 0 0<br />

1 分 周 0 0 0 1<br />

2 分 周 0 0 1 0<br />

3 分 周 0 0 1 1<br />

4 分 周 0 1 0 0<br />

5 分 周 0 1 0 1<br />

6 分 周 0 1 1 0<br />

7 分 周 0 1 1 1<br />

8 分 周 1 0 0 0<br />

9 分 周 1 0 0 1<br />

10 分 周 1 0 1 0<br />

11 分 周 1 0 1 1<br />

12 分 周 1 1 0 0<br />

13 分 周 1 1 0 1<br />

14 分 周 1 1 1 0<br />

15 分 周 1 1 1 1<br />

CTL5~CTL7 基 準 周 期 設 定<br />

CTL7 CTL6 CTL5<br />

10μs 0 0 0<br />

100μs 0 0 1<br />

1ms 0 1 0<br />

10ms 0 1 1<br />

100ms 1 0 0<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

196


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

【 使 用 例 】<br />

●C 言 語<br />

Int nRet;<br />

Int nDevice;<br />

nDevice = 1;<br />

BYTE bTimerConfigValue;<br />

hDeviceHandle = HScntOpen(“IFHSCNT1”);<br />

:<br />

:<br />

nRet = HScntGetTimerConfig(hDeviceHandle, &bTimerConfigValue);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

bTimerConfigValue: Byte;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntGetTimerConfig(nDevice, $bTimerConfigValue);<br />

デバイス 名 「IFHSCNT1」のデバイスのインターバルタイマ 設 定 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

197


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

75. HScntGetTimerCount<br />

【 機 能 】<br />

インターバルタイマのカウント 値 を 取 得 します。<br />

※この 関 数 は 下 記 、 製 品 型 式 のみ 対 応 しています。ご 注 意 ください。<br />

LPC-632102、PEX-632102<br />

【 書 式 】<br />

●C 言 語<br />

INT HScntGetTimerCount(<br />

int nDevice // デバイス 番 号<br />

unsigned char* pbTimerCount // タイマカウント 値<br />

// 格 納 変 数 へのポインタ<br />

);<br />

●Kylix<br />

function HScntGetTimerCount(<br />

nDevice: Integer; // デバイス 番 号<br />

var pbTimerCount: Byte // タイマカウント 値<br />

// 格 納 変 数 へのポインタ<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

hDeviceHandle<br />

HScntOpen 関 数 で 取 得 した<strong>インタフェース</strong>モジュールのデバイスハンドルを 指 定 してくだ<br />

さい。<br />

bTimerCount<br />

インターバルタイマの 設 定 情 報 を 格 納 する 変 数 へのポインタ( 参 照 渡 し)を 指 定 してくだ<br />

さい。<br />

HScntSetTimerConfig 関 数 により 設 定 した 周 期 における、 現 在 の 状 態 を 4bitカウンタで 取<br />

得 します。<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 予 約 予 約 予 約 予 約 CTL4 CTL3 CTL2 CTL1<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

198


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

CTL1~CTL4 分 周 値 設 定<br />

CTL4 CTL3 CTL2 CTL1<br />

0 カウント 0 0 0 0<br />

1 カウント 0 0 0 1<br />

2 カウント 0 0 1 0<br />

3 カウント 0 0 1 1<br />

4 カウント 0 1 0 0<br />

5 カウント 0 1 0 1<br />

6 カウント 0 1 1 0<br />

7 カウント 0 1 1 1<br />

8 カウント 1 0 0 0<br />

9 カウント 1 0 0 1<br />

10 カウント 1 0 1 0<br />

11 カウント 1 0 1 1<br />

12 カウント 1 1 0 0<br />

13 カウント 1 1 0 1<br />

14 カウント 1 1 1 0<br />

15 カウント 1 1 1 1<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

Int nRet;<br />

Int nDevice;<br />

nDevice = 1;<br />

unsigned char bTimerCount;<br />

nRet= HScntOpen(nDevice );<br />

:<br />

:<br />

nRet = HScntGetTimerCount(hDeviceHandle, &bTimerCount);<br />

●Kylix<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

199


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

bTimerCount: Byte;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntGetTimerCount(nDevice, bTimerCount);<br />

nRet := HScntOutputDO(nDevice, $01);<br />

デバイス 名 「IFHSCNT1」のデバイスのインターバルタイマのカウント 値 を 取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

200


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

76. HScntSetFilter<br />

【 機 能 】<br />

デジタルフィルタを 設 定 します。<br />

※この 関 数 は 下 記 、 製 品 型 式 のみ 対 応 しています。ご 注 意 ください。<br />

LPC-632102、PEX-632102<br />

【 書 式 】<br />

●C 言 語<br />

INT HScntSetFilter(<br />

int nDevice // デバイス 番 号<br />

unsigned long dwFilter // デジタルフィルタ<br />

);<br />

●Kylix<br />

function HScntSetFilter(<br />

nDevice: Integer; // デバイス 番 号<br />

dwFilter: Dword // デジタルフィルタ<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

hDeviceHandle<br />

UcntOpen 関 数 で 取 得 した<strong>インタフェース</strong>モジュールのデバイスハンドルを 指 定 してくだ<br />

さい。<br />

dwFilter<br />

デジタルフィルタ 設 定 値 を 指 定 してください。<br />

ビット<br />

bit31~bit16<br />

内 容<br />

予 約<br />

ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8<br />

内 容 DCLK21 DCLK20 予 約 DCNT24 DCNT23 DCNT22 DCNT21 DCNT20<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 DCLK11 DCLK10 予 約 DCNT14 DCNT13 DCNT12 DCNT11 DCNT10<br />

・IN1~IN8 のデジタルフィルタ 設 定<br />

カウント 数<br />

0 1 DCLCK11<br />

DCNT14~DCNT10 0 1 0 1 DCLCK10<br />

0 停 止 停 止 停 止 -<br />

1 1[us] 10[us] 100[us] -<br />

2 2[us] 20[us] 200[us] -<br />

: : : : -<br />

31 31[us] 310[us] 3100[us] -<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

201


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

・IN9~IN16 のデジタルフィルタ 設 定<br />

カウント 数<br />

0 1 DCLCK21<br />

DCNT24~DCNT20 0 1 0 1 DCLCK20<br />

0 停 止 停 止 停 止 -<br />

1 1[us] 10[us] 100[us] -<br />

2 2[us] 20[us] 200[us] -<br />

: : : : -<br />

31 31[us] 310[us] 3100[us] -<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

Int nRet;<br />

Int nDevice;<br />

nDevice = 1;<br />

nRet= HScntOpen(nDevice);<br />

:<br />

:<br />

nRet = HScntSetFilter(hDeviceHandle, 0x8A8A);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntSetFilter(nDevice, $8A8A);<br />

デバイス 名 「IFHSCNT1」のデバイスの IN1~IN8 と IN9~IN16 にデジタルフィルタ(フィルタ<br />

周 期 1ms)を 設 定 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

202


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

77. HScntGetFilter<br />

【 機 能 】<br />

デジタルフィルタ 設 定 情 報 を 取 得 します。<br />

※この 関 数 は 下 記 、 製 品 型 式 のみ 対 応 しています。ご 注 意 ください。<br />

LPC-632102、PEX-632102<br />

【 書 式 】<br />

●C 言 語<br />

INT HScntGetFilter(<br />

int nDevice // デバイス 番 号<br />

unsigned long* pdwFilter<br />

// デジタルフィルタ 取 得 変 数<br />

// へのポインタ<br />

);<br />

●Kylix<br />

function HScntGetDOEnable(<br />

nDevice: Integer; // デバイス 番 号<br />

var pdwFilter: Dword // デジタルフィルタ 取 得 変 数<br />

// へのポインタ<br />

): Integer; cdecl; external ‘libgpg<strong>6320</strong>hs.so’;<br />

【パラメータ】<br />

hDeviceHandle<br />

UcntOpen 関 数 で 取 得 した<strong>インタフェース</strong>モジュールのデバイスハンドルを 指 定 してくだ<br />

さい。<br />

pdwFilter<br />

デジタルフィルタ 設 定 値 を 格 納 する 変 数 へのポインタを 指 定 してください。<br />

格 納 される 値 の 詳 細 については 下 記 の 様 になります。<br />

ビット<br />

bit31~bit16<br />

内 容<br />

予 約<br />

ビット bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8<br />

内 容 DCLK21 DCLK20 予 約 DCNT24 DCNT23 DCNT22 DCNT21 DCNT20<br />

ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0<br />

内 容 DCLK11 DCLK10 予 約 DCNT14 DCNT13 DCNT12 DCNT11 DCNT10<br />

・IN1~IN8 のデジタルフィルタ 設 定<br />

カウント 数<br />

0 1 DCLCK11<br />

DCNT14~DCNT10 0 1 0 1 DCLCK10<br />

0 停 止 停 止 停 止 -<br />

1 1[us] 10[us] 100[us] -<br />

2 2[us] 20[us] 200[us] -<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

203


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

: : : : -<br />

31 31[us] 310[us] 3100[us] -<br />

・IN9~IN16 のデジタルフィルタ 設 定<br />

カウント 数<br />

0 1 DCLCK21<br />

DCNT24~DCNT20 0 1 0 1 DCLCK20<br />

0 停 止 停 止 停 止 -<br />

1 1[us] 10[us] 100[us] -<br />

2 2[us] 20[us] 200[us] -<br />

: : : : -<br />

31 31[us] 310[us] 3100[us] -<br />

【 戻 り 値 】<br />

正 常 終 了 した 場 合 は、IFHSCNT_ERROR_SUCCESSが 返 されます。<br />

IFHSCNT_ERROR_SUCCESS 以 外 の 値 が 返 された 場 合 については、『4.6 戻 り 値 一 覧 』をご 参 照 くだ<br />

さい。<br />

【 使 用 例 】<br />

●C 言 語<br />

Int nRet;<br />

Int nDevice;<br />

nDevice = 1;<br />

unsigned long dwFilter;<br />

nRet= HScntOpen(nDevice );<br />

:<br />

:<br />

nRet = HScntGetFilter(hDeviceHandle, &dwFilter);<br />

●Kylix<br />

var<br />

nRet: Integer;<br />

nDevice: Integer;<br />

dwFilter: Dword;<br />

nDevice := 1;<br />

nRet := HScntOpen(nDevice);<br />

:<br />

:<br />

nRet := HScntGetFilter(nDevice, dwFilter);<br />

デバイス 名 「IFHSCNT1」のデバイスの IN1~IN8 と IN9~IN16 のデジタルフィルタ 設 定 情 報 を<br />

取 得 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

204


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

4.5 構 造 体 説 明<br />

● UCNTDEVICEINFO 構 造 体<br />

UcntGetDeviceInfo 関 数 で 使 用 し、デバイス 情 報 を 格 納 する 構 造 体 です。<br />

typedef struct {<br />

unsigned long dwBoardType;<br />

unsigned long dwBoardID;<br />

} UCNTDEVICEINFO, *PUCNTDEVICEINFO;<br />

メンバ<br />

dwBoardType<br />

dwBoardID<br />

説 明<br />

ボードの 型 式 番 号 を 格 納 します。<br />

例 :CBI-632106 であれば 632106 が 格 納 されます。<br />

ボードの 識 別 番 号 を 格 納 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

205


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

● UCNTSMPLCONFIG 構 造 体<br />

UcntSetSamplingConfig 関 数 /UcntGetSamplingConfig 関 数 で 指 定 するサンプリング 条 件 設 定<br />

用 構 造 体 です。<br />

typedef struct {<br />

unsigned long dwSmplNum;<br />

unsigned long dwSmplEventNnm;<br />

unsigned long dwSmplRepeat;<br />

unsigned long dwStatusMode;<br />

unsigned long dwErrCtrl;<br />

} UCNTSMPLCONFIG, *PUCNTSMPLCONFIG;<br />

メンバ<br />

dwSmplNum<br />

dwSmplEventNnm<br />

dwSmplRepeat<br />

dwStatusMode<br />

dwErrCtrl<br />

説 明<br />

サンプリング 件 数 を 指 定 します。<br />

・ステータス 情 報 なしの 場 合 (dwStatusMode=IFUCNT_NO_STATUS)<br />

1~33,554,429(1FFFFFD h)<br />

・ステータス 情 報 ありの 場 合 (dwStatusMode=IFUCNT_ADD_STATUS)<br />

1~16,777,214(FFFFFE h)<br />

イベント 通 知 サンプリング 件 数 を 指 定 します。<br />

・ステータス 情 報 なしの 場 合 (dwStatusMode=IFUCNT_NO_STATUS)<br />

0、1~1,073,741,824(40000000 h)<br />

(0 を 指 定 すると、イベントが 発 生 しません。)<br />

・ステータス 情 報 ありの 場 合 (dwStatusMode=IFUCNT_ADD_STATUS)<br />

0、1~536,870,912(20000000 h)<br />

(0 を 指 定 すると、イベントが 発 生 しません。)<br />

サンプリング 繰 り 返 し 回 数 を 指 定 します。<br />

0、1~65,535(FFFF h)<br />

0 を 指 定 すると UcntStopSampling を 実 行 するまでサンプリングを 停 止 しま<br />

せん。<br />

サンプリングデータへのステータスの 付 加 を 指 定 します。<br />

識 別 子<br />

意 味<br />

IFUCNT_NO_STATUS ステータス 情 報 なし(デフォルト)<br />

IFUCNT_ADD_STATUS ステータス 情 報 付 加<br />

サンプリングエラー 発 生 時 の 処 理 を 指 定 します。<br />

識 別 子<br />

意 味<br />

IFUCNT_FREERUN 処 理 なし<br />

IFUCNT_STOP_ORER オーバーランエラーにより 処 理 を 停 止<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

206


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

● HSCNTDEVICEINFO 構 造 体<br />

HScntGetDeviceInfo 関 数 で 使 用 し、デバイス 情 報 を 格 納 する 構 造 体 です。<br />

typedef struct {<br />

unsigned long dwBoardType;<br />

unsigned long dwBoardID;<br />

} HSCNTDEVICEINFO, *PHSCNTDEVICEINFO;<br />

メンバ<br />

dwBoardType<br />

dwBoardID<br />

説 明<br />

ボードの 型 式 番 号 を 格 納 します。<br />

例 :CBI-632106 であれば 632106 が 格 納 されます。<br />

ボードの 識 別 番 号 を 格 納 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

207


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

4.6 戻 り 値 一 覧<br />

< 万 能 カウンタ 用 関 数 戻 り 値 ><br />

エラー 識 別 子 値 意 味 対 処 方 法<br />

IFUCNT_ERROR_SUCCESS 0 正 常 終 了 -<br />

IFUCNT_ERROR_NOT_DEVICE c0000001h ドライバを 呼 び 出 せませ<br />

ん。<br />

指 定 したデバイスが 見 つかりません<br />

でした。<br />

指 定 したデバイス 番 号 が 存 在 するか<br />

どうかを 確 認 してください。<br />

IFUCNT_ERROR_NOT_OPEN c0000002h ドライバを OPEN できませ<br />

ん。<br />

IFUCNT_ERROR_INVALID_DEVICE<br />

_NUMBER<br />

c0000003h<br />

デバイス 番 号 が 正 しくあ<br />

りません。<br />

IFUCNT_ERROR_ALREADY_OPEN c0000004h 既 に OPEN しているデバイ<br />

スを OPEN しようとしまし<br />

た。<br />

デバイスのオープン 時 、 何 らかのエラ<br />

ーが 発 生 しました。<br />

ドライバ 内 部 のメモリ 確 保 に 失 敗 し<br />

たなど。<br />

不 正 なデバイス 番 号 で 呼 び 出 しを 行<br />

おうとしました。<br />

OPEN 関 数 で 返 されたデバイス 番 号 を<br />

使 用 してください。<br />

既 に OPEN されているデバイスです。<br />

IFUCNT_ERROR_NOT_SUPPORTED c0000009h サポート 外 の 機 能 です。 指 定 したデバイスにおいて、サポート<br />

外 の 機 能 を 選 択 しました。<br />

IFUCNT_ERROR_INVALID_PARAME c0000010h 不 正 なパラメータを 指 定 正 しい 設 定 値 を 指 定 してください。<br />

TER<br />

しました。<br />

IFUCNT_ERROR_NOT_ALLOCATE_M<br />

EMORY<br />

c0000021h 必 要 なメモリ 領 域 を 確 保<br />

していません。<br />

事 前 にサンプリング 設 定 を 行 ってく<br />

ださい。<br />

IFUCNT_ERROR_DRVCAL c0000022h ドライバの 呼 び 出 しに 失<br />

敗 しました。<br />

ドライバのインストールが 正 常 に 行<br />

われていない 可 能 性 があります。<br />

IFUCNT_ERROR_NOW_SAMPLING c0001000h サンプリング 動 作 中 です。 サンプリング 動 作 中 に 実 行 できない<br />

関 数 です。<br />

IFUCNT_ERROR_NOW_STOP c0001001h サンプリング 停 止 中 です。 サンプリング 停 止 中 に 実 行 できない<br />

関 数 です。<br />

IFUCNT_ERROR_NULL_POINTER c0001002h NULL ポインタを 指 定 しま<br />

した。<br />

NULL ポインタは 指 定 できません、 正<br />

しいアドレスを 指 定 してください。<br />

IFUCNT_ERROR_INVALID_FUNC_M<br />

ODE<br />

c0001010h 不 正 な 機 能 モードが 設 定<br />

されています。<br />

現 在 の 機 能 モードでは 使 用 できない<br />

関 数 を 実 行 しました。<br />

IFUCNT_ERROR_INVALID_CHANNE<br />

L<br />

c0001011h チャンネル 番 号 指 定 に 誤<br />

りがあります。<br />

チャンネル 番 号 が 正 しくありません。<br />

1h~fh 以 外 のチャンネル 番 号 を 指 定<br />

しています。<br />

指 定 した 関 数 では 実 行 できないチャ<br />

ンネル 番 号 を 指 定 しています。<br />

IFUCNT_ERROR_INVALID_RESET_ c0001012h リセットモードが 不 正 で 正 しい 設 定 値 を 指 定 してください。<br />

MODE<br />

す。<br />

IFUCNT_ERROR_INVALID_COUNT_ c0001013h カウントモードが 不 正 で 正 しい 設 定 値 を 指 定 してください。<br />

MODE<br />

す。<br />

IFUCNT_ERROR_INVALID_LOAD c0001014h ロードモードが 不 正 です。 正 しい 設 定 値 を 指 定 してください。<br />

IFUCNT_ERROR_INVALID_LATCH c0001015h ラッチモードが 不 正 です。 正 しい 設 定 値 を 指 定 してください。<br />

IFUCNT_ERROR_INVALID_CLOCK c0001016h クロック 設 定 が 不 正 です。 正 しい 設 定 値 を 指 定 してください。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

208


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

エラー 識 別 子 値 意 味 対 処 方 法<br />

IFUCNT_ERROR_INVALID_TYPE c0001017h カウントタイプが 不 正 で 正 しい 設 定 値 を 指 定 してください。<br />

す。<br />

IFUCNT_ERROR_INVALID_DIVISO c0001018h 分 周 周 期 が 不 正 です。 正 しい 設 定 値 を 指 定 してください。<br />

R<br />

IFUCNT_ERROR_INVALID_PWIDE c0001019h パルス 幅 が 不 正 です。 正 しい 設 定 値 を 指 定 してください。<br />

IFUCNT_ERROR_INVALID_LOGIC c000101ah 論 理 設 定 が 不 正 です。 正 しい 設 定 値 を 指 定 してください。<br />

IFUCNT_ERROR_INVALID_OUTB c000101bh OUTB 出 力 指 定 が 不 正 です。 正 しい 設 定 値 を 指 定 してください。<br />

IFUCNT_ERROR_INVALID_CYCLE c000101ch 周 期 設 定 が 不 正 です。 正 しい 設 定 値 を 指 定 してください。<br />

IFUCNT_ERROR_INVALID_HPULSE c000101dh High パルス 幅 設 定 が 不 正 正 しい 設 定 値 を 指 定 してください。<br />

です。<br />

IFUCNT_ERROR_INVALID_TRG_ST c000101eh スタートトリガ 設 定 が 不 正 しい 設 定 値 を 指 定 してください。<br />

ART<br />

正 です。<br />

IFUCNT_ERROR_INVALID_TRG_ST c000101fh ストップトリガ 設 定 が 不 正 しい 設 定 値 を 指 定 してください。<br />

OP<br />

正 です。<br />

IFUCNT_ERROR_INVALID_TRG_CH c0001020h トリガチャンネルが 不 正 正 しい 設 定 値 を 指 定 してください。<br />

ANNEL<br />

です。<br />

IFUCNT_ERROR_INVALID_TRG_MO c0001021h トリガモードが 不 正 です。 正 しい 設 定 値 を 指 定 してください。<br />

DE<br />

IFUCNT_ERROR_INVALID_CMP_CH c0001022h 比 較 カウンタチャンネル 正 しい 設 定 値 を 指 定 してください。<br />

ANNEL<br />

設 定 が 不 正 です。<br />

IFUCNT_ERROR_INVALID_CMP_OU c0001023h OUTA の 一 致 検 出 設 定 が 不 正 しい 設 定 値 を 指 定 してください。<br />

TA<br />

正 です。<br />

IFUCNT_ERROR_INVALID_CMP_OU c0001024h OUTB の 一 致 検 出 設 定 が 不 正 しい 設 定 値 を 指 定 してください。<br />

TB<br />

正 です。<br />

IFUCNT_ERROR_INVALID_FILTER c0001025h デジタルフィルタが 不 正 正 しい 設 定 値 を 指 定 してください。<br />

です。<br />

IFUCNT_ERROR_INVALID_COUNTE c0001026h カウンタ 設 定 が 不 正 です。 正 しい 設 定 値 を 指 定 してください。<br />

R<br />

IFUCNT_ERROR_INVALID_CMP_SE c0001027h 比 較 カウンタ 選 択 が 不 正 正 しい 設 定 値 を 指 定 してください。<br />

LECT<br />

です。<br />

IFUCNT_ERROR_INVALID_COMPAR c0001028h 比 較 カウンタ A 設 定 値 が 不 正 しい 設 定 値 を 指 定 してください。<br />

ATOR<br />

正 です。<br />

IFUCNT_ERROR_INVALID_BUFFER c0001029h 比 較 カウンタ B 設 定 値 が 不 正 しい 設 定 値 を 指 定 してください。<br />

_SIZE<br />

正 です。<br />

IFUCNT_ERROR_INVALID_DATA_N c000102ah サンプリングデータの 取 正 しい 設 定 値 を 指 定 してください。<br />

UM<br />

得 件 数 が 不 正 です。<br />

IFUCNT_ERROR_INVALID_COMMAN c000102bh カウンタ 制 御 コマンドが 正 しい 設 定 値 を 指 定 してください。<br />

D<br />

不 正 です。<br />

IFUCNT_ERROR_INVALID_OUT_EN c000102ch 汎 用 出 力 許 可 設 定 が 不 正 正 しい 設 定 値 を 指 定 してください。<br />

ABLE<br />

です。<br />

IFUCNT_ERROR_INVALID_DO c000102dh 汎 用 出 力 値 の 指 定 が 不 正 正 しい 設 定 値 を 指 定 してください。<br />

です。<br />

IFUCNT_ERROR_INVALID_MASK c000102eh 割 り 込 みマスク 設 定 が 不<br />

正 です。<br />

正 しい 設 定 値 を 指 定 してください。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

209


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

< 高 速 カウンタ 用 関 数 戻 り 値 ><br />

エラー 識 別 子 値 意 味 対 処 方 法<br />

IFHSCNT_ERROR_SUCCESS 0 正 常 終 了 -<br />

IFHSCNT_ERROR_NOT_DEVICE c0000001h ドライバを 呼 び 出 せませ<br />

ん。<br />

IFHSCNT_ERROR_NOT_OPEN c0000002h ドライバを OPEN できませ<br />

ん。<br />

IFHSCNT_ERROR_INVALID_DEVIC<br />

E_NUMBER<br />

c0000003h<br />

デバイス 番 号 が 正 しくあ<br />

りません。<br />

IFHSCNT_ERROR_ALREADY_OPEN c0000004h 既 に OPEN しているデバイ<br />

スを OPEN しようとしまし<br />

た。<br />

指 定 したデバイスが 見 つかりません<br />

でした。<br />

指 定 したデバイス 番 号 が 存 在 するか<br />

どうかを 確 認 してください。<br />

デバイスのオープン 時 、 何 らかのエラ<br />

ーが 発 生 しました。<br />

ドライバ 内 部 のメモリ 確 保 に 失 敗 し<br />

たなど。<br />

不 正 なデバイス 番 号 で 呼 び 出 しを 行<br />

おうとしました。<br />

OPEN 関 数 で 返 されたデバイス 番 号 を<br />

使 用 してください。<br />

既 に OPEN されているデバイスです。<br />

IFHSCNT_ERROR_NOT_SUPPORTED c0000009h サポート 外 の 機 能 です。 指 定 したデバイスにおいて、サポート<br />

外 の 機 能 を 選 択 しました。<br />

IFHSCNT_ERROR_INVALID_PARAM c0000010h 不 正 なパラメータを 指 定 正 しい 設 定 値 を 指 定 してください。<br />

ETER<br />

しました。<br />

IFHSCNT_ERROR_NULL_POINTER c0001000h NULL ポインタを 指 定 しま<br />

した。<br />

NULL ポインタは 指 定 できません、 正<br />

しいアドレスを 指 定 してください。<br />

IFHSCNT_ERROR_INVALID_CHANN<br />

EL<br />

c0001001h チャンネル 番 号 指 定 に 誤<br />

りがあります。<br />

チャンネル 番 号 が 正 しくありません。<br />

1h~fh 以 外 のチャンネル 番 号 を 指 定<br />

しています。<br />

IFHSCNT_ERROR_INVALID_RESET<br />

_MODE<br />

c0001002h リセットモードが 不 正 で<br />

す。<br />

IFHSCNT_ERROR_INVALID_COUNT c0001003h カウントモードが 不 正 で<br />

_MODE<br />

す。<br />

IFHSCNT_ERROR_INVALID_MASK c0001004h 割 り 込 みマスク 設 定 が 不<br />

正 です。<br />

IFHSCNT_ERROR_INVALID_COMMA c0001005h カウンタ 制 御 コマンドが<br />

ND<br />

不 正 です。<br />

指 定 した 関 数 では 実 行 できないチャ<br />

ンネル 番 号 を 指 定 しています。<br />

正 しい 設 定 値 を 指 定 してください。<br />

正 しい 設 定 値 を 指 定 してください。<br />

正 しい 設 定 値 を 指 定 してください。<br />

正 しい 設 定 値 を 指 定 してください。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

210


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

4.7 Kylix をお 使 いの 方 へ<br />

Kylix をお 使 いの 方 は C 言 語 との 書 式 の 違 いにご 注 意 してお 使 いください。<br />

関 数<br />

C 言 語<br />

Kylix<br />

int UcntGetEventMask(<br />

1) function UcntGetEventMask(<br />

2)<br />

int nDevice, nDevice: Integer 3) ;<br />

int nChannel, nChannel: Integer;<br />

unsigned long *pdwEventMask 4) var dwEventMask: Dword<br />

); ): 5) Integer; 6) cdecl; external ‘gpg<strong>6320</strong>.so’;<br />

Kylix では 戻 り 値 を 返 す 場 合 は function、 返 さない 場 合 (C 言 語 の void に 相 当 )は procedure を<br />

関 数 の 先 頭 につけます。<br />

C 言 語 では” 変 数 の 型 変 数 名 ”の 順 で 引 数 を 記 述 するのに 対 し、Kylix では” 変 数 名 : 変 数 の 型 ”の 順<br />

で 記 述 します。<br />

Kylix では 変 数 の 型 が C 言 語 と 異 なります。 一 部 を 紹 介 します。<br />

・int→Integer<br />

・long→Longint<br />

・unsigned long→Cardinal(Dword)<br />

・void*→pointer<br />

参 照 渡 しを 記 述 する 際 には 変 数 名 に var をつけます。<br />

C 言 語 では 戻 り 値 の 型 を 先 頭 に 記 述 するのに 対 し、Kylix では 引 数 リストの 後 に 戻 り 値 の 型 を 記 述<br />

します( 戻 り 値 の 型 が C 言 語 における void 型 の 場 合 は、 戻 り 値 の 型 は”:;”と 何 も 記 述 しません。)<br />

ライブラリ 関 数 を 呼 ぶ 際 には、 関 数 の 最 後 に cdecl;external ‘ライブラリ 名 ’;を 記 述 します(ただ<br />

しコールバックルーチンは external ‘ライブラリ 名 ’;は 必 要 ありません)。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

211


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

使 用 例<br />

ボードオープンから 割 り 込 みイベントの 設 定 方 法 までを 記 述 します。<br />

C 言 語<br />

void EventProc(int nChannel, unsigned long ulEvent, unsigned long ulUser)<br />

{<br />

// 割 り 込 みイベントに 対 する 処 理 を 行 います<br />

}<br />

int main(void)<br />

{<br />

int nRet;<br />

}<br />

nRet = UnctOpen( 1 );<br />

nRet = UcntSetEventMask(nDevice, 1, 0x03);<br />

nRet = UcntSetEvent(nDevice, EventProc, 0x1234);<br />

:<br />

:<br />

Kylix<br />

1) var<br />

procedure EventProc(nChannel: Integer; dwEvent: Dword; dwUser: Dword);cdecl;<br />

nRet : Integer;<br />

procedure TForm1.FormCreate(Sender: TObject);<br />

2) begin<br />

end;<br />

3) nRet := UcntOpen( 1 );<br />

nRet := UcntSetEventMask(nDevice, 1, $03);<br />

nRet := UcntSetEvent( 1, @EventProc, 4) $1234);<br />

:<br />

:<br />

procedure EventProc(nChannel: Integer; dwEvent: Dword; dwUser: Dword);cdecl;<br />

begin<br />

// 割 り 込 みイベントに 対 する 処 理 を 行 います<br />

end;<br />

1)var 節 で 関 数 宣 言 、 変 数 宣 言 を 行 います。<br />

2) 関 数 の 処 理 記 述 は begin~end;の 中 に 記 述 します。<br />

3)Kylix では 代 入 には:=を 使 用 します。<br />

4)C 言 語 では 0x~が 16 進 数 を 示 すのに 対 し、Kylix では$~が 16 進 数 を 意 味 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

212


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

4.8 テストドライバの 使 用 方 法<br />

本 ソフトウェアには、ボードがなくてもドライバを 動 かすことができるテストドライバ 機 能 がつ<br />

いております。<br />

万 能 カウンタ 用 テストドライバを 使 用 する 場 合 は、libgpg<strong>6320</strong>u.so の 代 わりに libgpg<strong>6320</strong>ut.so<br />

をリンクし、コンパイルしてください。<br />

テストドライバ 機 能 を 使 用 するプログラム test.c をコンパイルする 場 合 のコンパイル 例 を 示 し<br />

ます。<br />

#gcc -o test test.c -lgpg<strong>6320</strong>ut<br />

高 速 カウンタ 用 のテストドライバを 使 用 する 場 合 には、libgpg<strong>6320</strong>hs.so の 代 わりに<br />

libgpg<strong>6320</strong>hst.so をリンクし、コンパイルします。<br />

各 関 数 は、 与 えられた 引 数 が 規 定 どおりになっているか、チェックします。<br />

関 数 名<br />

機 能<br />

UcntOpen<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntClose<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntGetDeviceInfo<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntReset<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntSetPulseCountMode 引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntGetPulseCountMode 引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntSetFreqAvgMode<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntGetFreqAvgMode<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntSetCycleMode<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntGetCycleMode<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntSetPhaseDifferenceMode 引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntGetPhaseDifferenceMode 引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntSetTimer<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntGetTimer<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntSetFreqDividerMode 引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntGetFreqDividerMode 引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntSetPulseGeneratorMode 引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntGetPulseGeneratorMode 引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntSetLoadData<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntGetLoadData<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntSetBaseClock<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntGetBaseClock<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntSetTriggerConfig 引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntGetTriggerConfig 引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntSetTriggerChannel 引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntGetTriggerChannel 引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntSetComparatorConfig 引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntGetComparatorConfig 引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntSetFilter<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntGetFilter<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

UcntSetCounter<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

213


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

UcntReadCounter<br />

UcntReadLatchCounter<br />

UcntSetComparator<br />

UcntGetComparator<br />

UcntGetStatus<br />

UcntSetSamplingConfig<br />

UcntGetSamplingConfig<br />

UcntGetSamplingData<br />

UcntClearSamplingData<br />

UcntGetSamplingStatus<br />

UcntStartCounter<br />

UcntStopCounter<br />

UcntLatchCounter<br />

UcntSetDOEnable<br />

UcntGetDOEnable<br />

UcntInputDI<br />

UcntOutputDO<br />

UcntSetEventMask<br />

UcntGetEventMask<br />

UcntSetEvent<br />

UcntKillEvent<br />

UcntSetOUTAB<br />

HScntOpen<br />

HScntClose<br />

HScntGetDeviceInfo<br />

HScntReset<br />

HScntSetMode<br />

HScntGetMode<br />

HScntReadCounter<br />

HScntGetStatus<br />

HScntStartCount<br />

HScntStopCount<br />

HScntSetEventMask<br />

HScntGetEventMask<br />

HScntSetEvent<br />

HScntKillEvent<br />

HScntSetDOEnable<br />

HScntGetDOEnable<br />

HScntInputDO<br />

HScntOutputDO<br />

HscntSetTimerConfig<br />

HScntGetTimerConfig<br />

HScntGetTimerCount<br />

HScntSetFilter<br />

HScntGetFilter<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFUCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

引 数 が 正 常 であれば、IFHSCNT_ERROR_SUCCESS を 返 します。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

214


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

第 5 章 サンプルプログラム<br />

以 下 、 各 サンプルプログラムの 概 要 を 説 明 します。<br />

5.1 実 行 手 順<br />

各 サンプルプログラム 共 に、「C 言 語 」、「Kylix」 用 のサンプルプログラムを 用 意 しています。<br />

各 サンプルプログラムが 格 納 されているフォルダで、make を 実 行 して 下 さい。<br />

作 成 後 、 生 成 された 実 行 ファイルを 起 動 してください。<br />

5.2 サンプルプログラム 一 覧<br />

本 製 品 には、 以 下 のサンプルプログラムが 添 付 されています。<br />

サンプルプログラム 格 納 先 (C 言 語 ):<br />

/usr/src/interface/gpg<strong>6320</strong>/(アーキテクチャ 名 )/linux/samples/c<br />

サンプルプログラム 格 納 先 (Kylix ※):<br />

/usr/src/interface/gpg<strong>6320</strong>/i386/linux/samples/kylix<br />

各 サンプルプログラムの 概 要 は、 下 記 の 様 になります。<br />

サンプルプログラム 名<br />

概 要<br />

ucnt_pulsecount 万 能 パルスカウンタを 使 用 したサンプルプログラムです。<br />

各 種 カウンタモードでのカウントと 内 部 クロックラッチ 機 能 を 使 用<br />

したサンプリング 動 作 を 使 用 できます。<br />

hscnt_pulsecount 高 速 カウンタを 使 用 したサンプルプログラムです。<br />

encoderpulsecount エンコーダ 出 力 の 位 相 差 パルスをカウントするプログラムです。<br />

pulsedutysampling 入 力 パルスのデューティ 比 をサンプリングするプログラムです。<br />

singlepulsecount 単 層 パルスをカウントするサンプルプログラムです。<br />

※Kylix 用 サンプルプログラムは i386 の 場 合 にのみインストールされます。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

215


<strong>GPG</strong>-<strong>6320</strong> Help for Linux<br />

第 6 章 重 要 な 情 報<br />

保 証 の 内 容 と 制 限<br />

弊 社 は 本 ソフトウェアの 実 行 が 中 断 しないこと、またはその 実 行 に 誤 りが 無 いことを 保 証 してい<br />

ません。<br />

本 製 品 の 品 質 や 使 用 に 起 因 する、 性 能 に 起 因 するいかなるリスクも 使 用 者 が 負 うものとします。<br />

弊 社 はドキュメント 内 の 情 報 の 正 確 さに 万 全 を 期 しています。 万 一 、 誤 記 または 誤 植 などがあっ<br />

た 場 合 、 弊 社 は 予 告 無 く 改 訂 する 場 合 があります。ドキュメントまたはドキュメント 内 の 情 報 に<br />

起 因 するいかなる 損 害 に 対 しても 弊 社 は 責 任 を 負 いません。<br />

ドキュメント 内 の 図 や 表 は 説 明 のためであり、ユーザ 個 別 の 応 用 事 例 により 変 化 する 場 合 があり<br />

ます。<br />

著 作 権 、 知 的 所 有 権<br />

弊 社 は 本 製 品 に 含 まれるおよび 本 製 品 に 対 する 権 利 や 知 的 所 有 権 を 保 持 しています。<br />

本 製 品 はコンピュータ ソフトウェア、 映 像 / 音 声 ( 例 えば 図 、 文 章 、 写 真 など)を 含 んでいます。<br />

医 療 機 器 / 器 具 への 適 用 における 注 意<br />

弊 社 の 製 品 は 人 命 に 関 わるような 状 況 下 で 使 用 される 機 器 に 用 いられる 事 を 目 的 として 設 計 、 製<br />

造 された 物 では 有 りません。<br />

弊 社 の 製 品 は 人 体 の 検 査 などに 使 用 するに 適 する 信 頼 性 を 確 保 する 事 を 意 図 された 部 品 や 検 査 機<br />

器 と 共 に 設 計 された 物 では 有 りません。<br />

医 療 機 器 、 治 療 器 具 などの 本 製 品 の 適 用 により、 製 品 の 故 障 、ユーザ、 設 計 者 の 過 失 などにより、<br />

損 傷 / 損 害 を 引 き 起 こす 場 合 が 有 ります。<br />

複 製 の 禁 止<br />

弊 社 の 許 可 なく、 本 ドキュメントの 全 て、または 一 部 に 関 わらず、 複 製 、 改 変 などを 行 うことは<br />

できません。<br />

責 任 の 制 限<br />

弊 社 は、 弊 社 または 再 販 売 者 の 予 見 の 有 無 にかかわらず 発 生 したいかなる 特 別 損 害 、 偶 発 的 損 害 、<br />

間 接 的 な 損 害 、 重 大 な 損 害 について、 責 任 を 負 いません。<br />

本 製 品 (ハードウェア,ソフトウェア)のシステム 組 み 込 み、 使 用 、ならびに 本 製 品 から 得 られる<br />

結 果 に 関 する 一 切 のリスクについては、 本 製 品 の 使 用 者 に 帰 属 するものとします。<br />

本 製 品 に 含 まれるバグ、あるいは 本 製 品 の 供 給 ( 納 期 遅 延 )、 性 能 、もしくは 使 用 に 起 因 する 付 帯<br />

的 損 害 もしくは 間 接 的 損 害 に 対 して、 弊 社 に 全 面 的 に 責 がある 場 合 でも、 弊 社 はその 製 品 に 対 す<br />

る 改 良 ( 正 常 に 動 作 する)、 代 品 交 換 までとし、 金 銭 面 での 賠 償 の 責 任 は 負 わないものとしますの<br />

で、 予 めご 了 承 ください。<br />

本 製 品 (ソフトウェアを 含 む)は、 日 本 国 内 仕 様 です。 本 製 品 を 日 本 国 外 で 使 用 された 場 合 、 弊<br />

社 は 一 切 責 任 を 負 いかねます。また、 弊 社 は 本 製 品 に 関 し、 海 外 での 保 守 サービスおよび 技 術 サ<br />

ポート 等 は 行 っておりません。<br />

商 標 / 登 録 商 標<br />

本 書 に 掲 載 されている 会 社 名 、 製 品 名 は、それぞれ 各 社 の 商 標 または 登 録 商 標 です。<br />

© 2005, 2014 Interface Corporation. All rights reserved.<br />

216

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!