5. CPU負荷が高いという話だが実際どうなのか?
picocalcとMP3プレイヤーで検索すると、Pico2 のみとか書かれてるサイトがあった。
ということはCPU負荷が高いということだよな。大丈夫かな?と思いぐぐったり、実測したりしてみた。
rp2040 interrupt latency で検索すると、割り込みでGPIOを反転する処理時間が見つかった。
FLASH上にプログラムがある場合
初回反転:17us
次の反転:2us
RAM上にプログラムがある場合
初回反転:5us
次の反転:100ns
picoの割り込みって思ってた以上に遅い。
サンプリングレート 44kHz だと割り込みは 23us に一度発生するので、全く間に合わない。RP2350だと2~3倍の性能は出るけど、かなりきつそうだ。
インターバルタイマを動かしたときに、どれくらい影響があるかを実測した。
micropythonで
for i in range(100000):
sum += i
みたいなループを走らせた結果
何もしない:約1450ms
44kHz タイマー:約1840ms
オーバーヘッドだけで 25% ぐらい悪化してる。
動画と併用するなら根本的に対策しないとダメそうだ。
割り込み処理が重いならDMA転送にすればいいのに。と昔の人は言いました。
でもDMA終了割り込み処理とか組む必要があるんだよな。
う〜ん。




