# MIC_StartAutoSamplingAsync

## 構文

  `#include <nitro/spi.h>`

      MICResult MIC_StartAutoSamplingAsync(
                  const MICAutoParam*    param,
                  MICCallback            callback,
                  void*                  arg );

## 引数

param | `MICAutoParam`型の自動サンプリング設定構造体へのポインタを指定します。
callback | コールバック関数へのポインタを指定します。 このコールバックは割り込みハンドラ内から呼び出されます。
arg | コールバック関数へ渡す引数を指定します。

## 返り値

`MICResult`列挙型の処理結果を返します。
非同期処理を正常に開始できた場合に MIC_RESULT_SUCCESS が、何らかの原因で失敗した場合にはそれ以外の返り値が返されます。

## 説明

マイクの自動サンプリングを非同期に開始します。
サンプリング前には `PM_SetAmp*()` によってプログラマブルゲインアンプをオンにして下さい。
この関数はARM7に自動サンプリング開始要求を発行し、ARM7からの応答を待たずに呼び出し元に戻ります。 ARM7における処理結果はユーザコールバック関数に渡されるresult引数によって取得する必要があります。 この関数が失敗した場合は非同期的な操作は行われず、ユーザコールバック関数も呼び出されません。
なお、入力音量が最大値及び最小値を越える場合には出力データはクランプされます。
サンプリング可能な入力音量は、`PM_SetAmpGain*()`により調整することができます。

CODECをCODEC-TWLモードで動作させる場合には任意の周波数では自動サンプリングを行うことができないため、この関数は MIC_RESULT_INVALID_COMMAND を返します。
つまり、CODECがCODEC-DSモードの場合でないと本関数を使用することができません。

## 注意

マイク自動サンプリング中にも他のARM7プロセッサ周辺装置(SPIデバイス)を操作できますが、他のSPIデバイスが長時間アクセスを専有した場合には、その期間中マイクは一定の値を返し続けますのでご注意ください。

## 参照

`MIC_StartAutoSampling, MIC_StopAutoSamplingAsync, MIC_AdjustAutoSamplingAsync, PM_SetAmpGain`

## 履歴

Ver. 2009/06/25 PM_SetAmp*() の使用について追記
Ver. 2009/05/14 CODECに関する説明の追記、TWLアイコンの追加
Ver. 2008/01/09 CODECモードによる動作の差異について説明を修正
Ver. 2007/11/17 TWLプラットフォームでの動作説明を追加
Ver. 2005/06/27 コールバックが割り込みハンドラから呼び出される旨を補足
Ver. 2005/01/11 返り値の修正、説明の修正、参照関数の追加
Ver. 2004/09/17 引数paramの型を変更
Ver. 2004/08/10 マイク自動サンプリング中のタッチパネルサンプリングについての記述を追加、入力音量に関する説明追加
Ver. 2004/06/01 初版