その9の続き。
データを一時保管するバッファの構造を変えたりしたが、
44.1kHz再生でノイズが消えずに1週間経ってしまった。
最終的にはUSBHandleGetLengthの使い方が間違って
いた様だ。正しい手順を書いておく。
初期化部分USBCBInitEPで、まずUSBHandleBusyで受信
できるか確認する。受信可能になればUSBRxOnePacketの
受信サイズを考えられる最大サイズを指定して呼び出す。
つまり48kHzで49サンプル分x4byte=196を指定。
メインのループUSBAudioTasks内にて、USBHandleBusyで
できるか確認する。受信可能になればUSBHandleGetLength
を呼び出し、前回受信したサイズを取得する。その後で
USBRxOnePacketの受信サイズを考えられる最大サイズを
指定して呼び出す。以降繰り返し。
つまり受信サイズは次回USBHandleBusyで受信可能になる
まで取得できないと考えられるので注意が必要だ。メーカー
サンプルを修正するなら一部48のところを49に修正するのを
忘れない様に。
その7のusb_descriptors.cについて修正した方が良さそうな
部分があったので、その7に追記しておいた。