TP_RequestAutoSamplingStartAsync

構文

#include <nitro/spi.h>
void TP_RequestAutoSamplingStartAsync(
            u16 vcount,
            u16 frequence,
            TPData samplingBufs[],
            u16 bufSize );

引数

vcount オートサンプリングのためのベースVカウント値。
frequence 1フレームの間にサンプリングする回数。(MAX4回)
samplingBufs オートサンプリング値が格納されるバッファを設定するポインタ。最低でもfrequence分のTPDataが入るだけの領域を確保する必要があります。
bufSize samplingBufsで渡されたバッファの要素数。

返り値

なし。

説明

ARM7に対して非同期にタッチパネル値のオートサンプリング開始要求を出します。
この要求が受け付けられると、以降定期的にサンプリングが実行されsamplingBufsで指定された配列へ値が格納されていきます。
オートサンプリングの間隔はvcountで設定された値をベースに1フレームにfrequence回のデータがVAlarmによって均等な間隔でサンプリングされます。
ただし、Vカウント値が200から214までの時間帯はサンプリングに使用しません。GX_SetVCount でVカウント値が変更される可能性があるためです。 サンプリングするVカウント値がこの期間に入っている場合は、215 ラインまでサンプリングが遅延されます。
TP_SetCallback()でユーザコールバックが設定されている場合には、値が格納されるごとにコールバックによって通知されます。

この関数によってsamplingBufsはクリアされ以後ループバッファとして使用されます。最後に格納されたデータのインデクスは、TP_GetLatestIndexInAuto()によって取得することが可能です。

オートサンプリングでは(最新のインデックス+1)のサンプリング値は割り込みにより不意に書き換えられる可能性があります。 1フレーム分のサンプリング値をまとめて利用する場合にはfrequence+1以上の領域を確保しておくことで回避可能です。

(注意)
この関数ではARM7へのリクエストが正常に処理されたかを確認する必要があります。
リクエストの成否は、TP_WaitBusy()で完了を待った後にTP_CheckError()で取得する、またはユーザコールバックの引数によって取得する必要があります。

参照

TP_RequestAutoSamplingStop, TP_GetLatestRawPointInAuto,TP_GetLatestCalibratedPointInAuto, TP_GetLatestIndexInAuto,TP_WaitBusy, TP_CheckError,TP_RequestAutoSamplingStart, TPData

履歴

Ver. 2007/10/29 説明を追記
Ver. 2007/10/16 使用しないVカウント値の説明を追記
Ver. 2006/09/01 bufSizeの説明を修正
Ver. 2004/04/21 初版