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