# MIC_StartLimitedSampling

## 構文

  `#include <twl/spi.h>`

      MICResult MIC_StartLimitedSampling(
                  const MICAutoParam*    param );

## 引数

param | `MICAutoParam`型の自動サンプリング設定構造体へのポインタを指定します。

## 返り値

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

## 説明

マイクの周波数限定自動サンプリングを開始します。
サンプリング前には `PM_SetAmp*()` によってプログラマブルゲインアンプをオンにして下さい。
この関数はARM7に周波数限定自動サンプリング開始要求を発行し、ARM7からの応答を待って処理結果を返します。
`MIC_StartLimitedSamplingAsync()`の同期版です。
なお、入力音量が最大値及び最小値を越える場合にはサンプリングデータはクランプされます。

周波数限定自動サンプリングは通常の自動サンプリングと異なり、実際のサンプリング操作をハードウェアで行います。 このため、厳密な周期で安定したサンプリングを行うことができ、ARM7でのCPU負荷が緩和されることにより無線通信などの他のI/Oに与える影響が少なくなります。 反面、ハードウェアのサポートする周波数以外ではサンプリングを行うことができません。 param`->rate` に指定可能なサンプリング周波数は以下の通りですが、サウンドのマスター周波数設定に依存して更に以下の内の４つに限定されます。 限定された周波数以外を指定した場合には MIC_RESULT_ILLEGAL_PARAMETER が返されます。

サウンドマスター周波数 | 設定可能な周波数 | 説明
--- | --- | ---
32.73kHz | MIC_SAMPLING_RATE_32730 | 32.73kHz (マスター周波数の1/1)
MIC_SAMPLING_RATE_16360 | 16.36kHz (マスター周波数の1/2)
MIC_SAMPLING_RATE_10910 | 10.91kHz (マスター周波数の1/3)
MIC_SAMPLING_RATE_8180 | 8.18kHz (マスター周波数の1/4)
47.61kHz | MIC_SAMPLING_RATE_47610 | 47.61kHz (マスター周波数の1/1)
MIC_SAMPLING_RATE_23810 | 23.81kHz (マスター周波数の1/2)
MIC_SAMPLING_RATE_15870 | 15.87kHz (マスター周波数の1/3)
MIC_SAMPLING_RATE_11900 | 11.90kHz (マスター周波数の1/4)

## 注意

この関数は同期を取る為にPXI割り込みを待ちますので、PXI割り込みを禁止した状態で呼び出さないようにして下さい。
NITROプラットフォーム上やCODECをCODEC-DSモードで動作させる場合には周波数限定自動サンプリングは行うことができないため、 代わりに自動サンプリング操作用関数`MIC_StartAutoSampling()`が内部的に呼び出されます。

TWL のマイク入力には、微小なノイズが混入することが判明しています。対策はこちらをご覧下さい。

## 参照

`MIC_StartLimitedSamplingAsync, MIC_StopLimitedSampling, MIC_AdjustLimitedSampling`

## 履歴

Ver. 2009/06/25 PM_SetAmp*() の使用について追記
Ver. 2008/01/09 CODECモードによる動作の差異についての注意を追記
Ver. 2007/11/17 初版