# MICSamplingType

## 定義

  `#include <nitro/spi.h>`

      typedef enum
      {
          MIC_SAMPLING_TYPE_8BIT = 0 ,
          MIC_SAMPLING_TYPE_12BIT ,
          MIC_SAMPLING_TYPE_SIGNED_8BIT ,
          MIC_SAMPLING_TYPE_SIGNED_12BIT ,
          MIC_SAMPLING_TYPE_12BIT_FILTER_OFF ,
          MIC_SAMPLING_TYPE_SIGNED_12BIT_FILTER_OFF ,
          MIC_SAMPLING_TYPE_MAX

      } MICSamplingType;

## 要素

MIC_SAMPLING_TYPE_8BIT | 有効ビット幅 8 ビット（符号なし）のサンプリング。 出力データの範囲は 0 〜 255 になります。
MIC_SAMPLING_TYPE_12BIT | 有効ビット幅 12 ビット（符号なし）のサンプリング。 出力データの範囲は 0 〜 65520 になります。
MIC_SAMPLING_TYPE_SIGNED_8BIT | 有効ビット幅 8 ビット（符号付き）のサンプリング。 出力データの範囲は -128 〜 127 になります。
MIC_SAMPLING_TYPE_SIGNED_12BIT | 有効ビット幅 12 ビット（符号付き）のサンプリング。 出力データの範囲は -32768 〜 32752 になります。
MIC_SAMPLING_TYPE_12BIT_FILTER_OFF | フィルター無しの有効ビット幅 12 ビット（符号なし）のサンプリング。 出力データの範囲は 0 〜 65520 になります。 他のSPIデバイスアクセスなどと競合し、サンプリングに失敗した場合には出力データが0xffff(65535)になります。
MIC_SAMPLING_TYPE_SIGNED_12BIT_FILTER_OFF | フィルター無しの有効ビット幅 12 ビット（符号付き）のサンプリング。 出力データの範囲は -32768 〜 32752 になります。 他のSPIデバイスアクセスなどと競合し、サンプリングに失敗した場合には出力データが0xffff(-1)になります。

## 説明

サンプリング種別を示す列挙型です。
8 ビット、12 ビットの 2 種類の分解能でのサンプリングが可能です。 また、出力データの形式を 符号なし、符号付き の 2 種類から選択可能です。 8 ビットの場合は一回のサンプリングで 1 バイトのデータを取得します。 12 ビットの場合は一回のサンプリングで 2 バイト(上位 12 ビットが有効、下位 4 ビットは 0 パディング)のデータを取得します。
なお、有効ビット幅を越えるような音声が入力された場合は、出力データはクランプされて最大値もしくは最小値になります。 有効ビット幅内でカバーする音量は、`PM_SetAmpGain*()`にて変更することができます。
自動サンプリングを行う場合には、他のSPIデバイス(タッチパネル等)との競合により、サンプリングに失敗する場合があります。 この時、通常は直前のサンプリングデータを用いてフィルターされますが、サンプリング種別に *_FILTER_OFF を指定した場合には フィルターが行われず、サンプリングに失敗した旨を示す値( 0xffff )が出力されます。

## 参照

`MIC_DoSampling, MIC_DoSamplingAsync, MIC_StartAutoSampling, MIC_StartAutoSamplingAsync, PM_SetAmpGain, MIC_StartLimitedSampling, MIC_StartLimitedSamplingAsync`

## 履歴

Ver. 2004/12/03 フィルター無しのサンプリング種別を追加
Ver. 2004/06/01 初版