# TP_RequestAutoSamplingStartAsync

## 構文

  `#include <nitro/spi.h>`

      void TP_RequestAutoSamplingStartAsync(
                  u16 vcount,
                  u16 frequence,
                  TPData samplingBufs[],
                  u16 bufSize );

## 引数

vcount | オートサンプリングのためのベースVカウント値。
frequence | １フレームの間にサンプリングする回数。（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)のサンプリング値は割り込みにより不意に書き換えられる可能性があります。 １フレーム分のサンプリング値をまとめて利用する場合には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 初版