イベントコントローラ使用例1

1つのデバイス内部で、アナログ入力と同じタイミングで同時にアナログ出力を行う場合のイベントコントローラの設定例を示します。

まず、アナログ入力とアナログ出力を同時に開始させるために、アナログ入力の変換開始信号をアナログ出力の開始信号として使用されるように設定します。

1.アナログ入力の開始条件を設定

アナログ入力の開始条件はAioSetAiStartTrigger関数を使用します。
今回の使用例ではソフトウェアスタートとします。

Ret = AioSetAiStartTrigger ( Id , 0 )

2.アナログ入力の開始条件を設定

アナログ入力の開始条件はAioSetAiStartTrigger関数を使用します。
開始条件はアナログ出力からの制御信号を使用しますので、パラメータは10のイベントコントローラ出力とします。

Ret = AioSetAiStartTrigger ( Id , 10 )

 

3.イベントコントローラの設定

イベントコントローラの設定を行います。
接続先(Destination)はアナログ入力変換開始信号、接続元(Source)はアナログ出力ソフトウェアスタート信号となります。

Ret = AioSetEcuSignal ( Id , AIOECU_DEST_AI_START , AIOECU_SRC_START )

※参考
アナログ出力の開始条件がソフトウェアスタート以外の条件の場合、
あわせてイベントコントローラの接続元(Source)を設定する必要があります。
アナログ出力の開始条件が外部トリガ立ち上がりの場合

Ret = AioSetAoStartTrigger ( Id , 1 )
Ret = AioSetAiStartTrigger ( Id , 10 )
Ret = AioSetEcuSignal ( Id , AIOECU_DEST_AI_START , AIOECU_SRC_AO_TRGSTART )

次に、アナログ入出力ともに同じ周期で変換を行わせるために、アナログ出力のクロック信号をアナログ入力のクロック信号として使用するように設定します。

4.アナログ出力のクロック種類を設定

アナログ出力のクロック種類はAioSetAoClockType関数を使用します。
今回の使用例では内部クロックとします。

Ret = AioSetAoClockType ( Id , 0 )

5.アナログ入力のクロック種類を設定

アナログ入力のクロック種類はAioSetAiClockType関数を使用します。
使用するクロックはアナログ入力からの制御信号を使用しますので、パラメータは10のイベントコントローラ出力となります。

Ret = AioSetAiClockType ( Id , 10 )

6.イベントコントローラの設定

イベントコントローラの設定を行います。
接続先(Destination)はアナログ入力サンプリングクロック周期、接続元(Source)はアナログ出力内部クロック信号となります。

Ret = AioSetEcuSignal ( Id , AIOECU_DEST_AI_CLK , AIOECU_SRC_AO_CLK )

 

続いて、アナログ出力とアナログ入力を同時に停止させるために、アナログ出力の変換停止信号をアナログ入力の停止信号として使用するように設定します。

7.アナログ出力の停止条件を設定

アナログ出力の停止条件はAioSetAoStopTrigger関数を使用します。
今回の使用例では、指定回数出力終了信号で停止とします。(FIFOメモリ)

Ret = AioSetAoStopTrigger ( Id , 0 )

8.アナログ入力の停止条件を設定

アナログ入力の停止条件はAioSetAiStopTrigger関数を使用します。
停止条件はアナログ出力からの制御信号を使用しますので、パラメータは10のイベントコントローラ出力とします。

Ret = AioSetAiStopTrigger ( Id , 10 )

 

9.イベントコントローラの設定

イベントコントローラの設定を行います。
接続先(Destination)はアナログ入力変換停止信号、接続元(Source)はアナログ出力ソフトウェアスタート信号となります。

Ret = AioSetEcuSignal ( Id , AIOECU_DEST_AI_STOP , AIOECU_SRC_AO_STOP_FIFO )

 

 

以上で、開始条件/クロック条件/停止条件の設定、および、それらに対するイベントコントローラの設定準備が完了となります。

変換開始はアナログ入力から行い、その後、アナログ出力の変換開始を行います。

先にアナログ出力の変換を開始すると、アナログ入力の変換が行われない可能性があります。

10.変換開始

Ret = AioStartAi ( Id )

Ret = AioStartAo ( Id )

 

 

以上で、アナログ入出力が開始され、指定回数出力したタイミングでアナログ入力も停止します。