いくつか当初の思惑と違ったところ、
1. 結局ADCデータ読み取りのDMA処理終わった後の割り込みが2回目以降は発生しない、デバッガで止めながらだと発生するからタイミング問題だろ受けで原因突き止めできない
2. ADCのクロックデバイドはDMAモード以外でも有効化できない
従って、現状のロジックは、CPUが介在しておよそ500KHzで動くADCのデータを2μsごとに読み取って蓄積
以降の処理はDMA使った時と大差なし
3. LCDの表示処理は初回描画だけは画面全面書き込みになるけど、2回目以降は差分処理だけにして高速化、ただしフレーム周期は今の所およそ12ms*10 =120 ms にしている
4. 初回のLCD(全面書き込み)は500ms程度掛かっているから、FFTデータは一度表示用にコピーして、次のFFT処理で壊されないように別保存している、今は表示周期をおよそ120msぐらいにしているけども、2回目以降は変更部分のみの書き換えだから高速
この画像はおよそ2KHz(ちょっと下)の方形波をPWMから入力して9次の高調波まで表示されている状態
コード全体は、以下のリンクから
https://github.com/chateight/dsp
もちろん用途によるけど、ラズパイシリーズではラズピコが値段考えると一番使い出があるように思う
admin