38/61
4. 再生できたが音が揺らいでる
MP3のデコードしたデータを順次バッファにコピーして、インターバルタイマの割り込み処理でバッファからPWMのレジスタに書き込んだ。
最初は気づかなかったが、色々再生してるとビブラートみたいに揺らいでる。
画面の更新処理(割り込み、DMA転送)が悪さしてる?
と思って更新を停止したら改善したが、まだ揺らいでる。
周期処理で処理時間が変わるところと言えば、バッファの切り替え処理なんだが、その程度が影響するかね?
と思いつつ試しにバッファサイズを増やすと現象が軽減した。
なんで?と思ってSDKのマニュアルを読むと、インターバルタイマは、処理が終わってから周期を刻むらしい。え〜?ダメじゃん。
処理時間が変わらないようにダミー処理を入れようかと思ったが、単発タイマー設定にして、割り込み処理の先頭で次のタイマーを起動することにした。
だいぶ安定した。




