02-03-2020 12:18 AM
PCI-6250でDAQmxのC APIを使用しています。
DOを使用して任意のタイミングで1msecのトリガー(※1)を1回だけ出力したいのですか可能でしょうか?
※1)通常はHigh、1msecの間だけLowになるトリガー
C APIで実装する方法を知っていれば教えて頂けないでしょうか。よろしくお願いします。
02-04-2020 05:19 AM
DAQmxインストール時に「C言語サポート」などという項目があった気がします。該当項目をインストールすると以下のフォルダにサンプルがあるはずです。
C:\Users\Public\Documents\National Instruments\NI-DAQ\Examples\DAQmx ANSI C\Digital\Generate Values\Write Dig Chan
02-04-2020 06:34 PM
連絡、ありがとうございます。
DO出力は出来るのですが、1msceという正確な時間で出力できません。NIボードの内蔵タイマー等を使用して
正確に1msecの間だけLowレベルにする必要があります。
サンプルを探しても正確な時間だけ1ショット出力するものを見つける事が出来ませんでした。
02-07-2020 04:00 AM
正確な時間で、ということは、ソフトウェア的に出力タイミングを決めるのではなく、ハードウェア的に出力を決めることになるかと思います。
LabVIEWであれば、「DAQmx timing」という関数を使用すればハードウェア的なタイミングになると思うのですが、Cだと
DAQmxCfgSampClkTimingが対応しそうですね。
すいません、Cのプログラミングに疎いのでコードはかけないのですが、LabVIEWであれば、
「チャンネルを生成して、タイミングを決めて、タスクを開始する」
という流れでプログラムを組みます、そしてその流れはCでも変わらないと思います。
以下の資料にある「タイミングパラメータを構成する」は参考になりませんか?
テキストベースのプログラミング環境でNI-DAQmxを使用する - National Instruments
http://www.ni.com/tutorial/5409/ja/
02-09-2020 06:20 PM
アドバイス、ありがとうございます。
DAQmxCfgSampClkTimingを使用して実装できるか調べてみます。