GUST NOTCH? DIARY

マイク周りの覚書

お作法としては

  1. XON MIC でマイクを有効にする
  2. MICSTART でサンプリングを開始する
    • MICSIZE は MICSTART したときに決定される
    • MICPOS は MICSTART すると0に戻る
  3. MICSAVE や MICDATA などで、値を得る
    • サンプリング時間を指定する場合は、必要なサイズの配列を渡せばよい。足りない場合は自動的に拡張されるらしいが、拡張される動作はまだ確認できていない。
    • ループで取得し続ける場合は、前回の MICPOS から現在の MICPOS までのデータを MICSAVE で取得して処理するということを繰り返す。ループの中で現在の MICPOS の MICDATA を呼び続けるだけでは、かなりのデータの取りこぼしが発生してしまう。ただし、MICDATA は位置を指定可能なので、MICDATA で必要な要素をなめることも可能ではある。
    • MICSAVE で MICSIZE を超えた範囲のデータを取得しようとすると、Out of Range エラーになる。つまりリングバッファにはなっておらず、期待するような、サンプリングバッファの先頭に戻って必要なサイズの配列を埋めたものは返ってこない。境界処理は自前で行う必要がある。
    • ループ時は MICPOS は MICSIZE を超えると 0 に戻り、サンプリングバッファを繰り返し再利用する。そこそこの処理をさせても周回遅れになる心配はしなくてよさそう。
  4. MICSTOP でサンプリングを停止する。
  5. XOFF MIC でマイクを無効にする

MICSTART した後、MICSTOP せずにプログラムを終了すると、サンプリングは続いているのでMICPOSは変化する。
同様に、XON MIC した後は XOFF MIC しない限り ON のまま。多分電池の消耗に影響があるのでは?