Quantcast
Channel: JA1QVM
Viewing all articles
Browse latest Browse all 161

33FJ64GP802/デジタル変換・・・その2

$
0
0
前回まででデジタル変換(ADC)モジュールの基本設定は終っています。
サンプリング周波数用のタイマ3も設定は終っています。
後は現実にトリーガを掛ける方法ですが、此れは「割込み」を使います。
下にプログラムを・・・

イメージ 1
1行目がタイマ3の割込み命令です。
何やら長ったらしい文ですが・・・問題は其の下から始まる怪しげな命令文です。
結論を先に云うと「インライン・アセンブラ/簡易型」です。
前回でも指摘しましたが、サンプリング周波数の周期でどんどんデジタル化された信号が取り込まれてきます。
其の時間は 1/Fs=約 50μ秒程ですね。
つまり「もたもた」出来な~い・・・
結果的にアセンブラ言語を使わざるをえないです。
他の主要部分をC言語で書いておきながら、速い演算を必要とする時だけアセンブラを使うと云う、虫の良い方法です。
メーカでも此れを用意してあるので使ってみました。

詳しい内容は省きますが、結論は上記のワーキング・レジスタ [W0]のシャドウ側に 12bit/ADCの結果が 50μ秒毎に書き込まれます。
当然もたもたしてると上書きされます。
後は W0の内容で DSP処理をするのですが、其の部分は膨大な量で微妙な問題も含み、私の力量ではブログで発表するのは無理の様です。
実際に一冊の解説本が出来るくらいのレベルで、趣味として研究するのは楽しいですが残念です。
興味がありファイト満々な人は専門書を読み、自力で進んで下さい。
私の様な素人の爺さんでも、充分に SSBジェネレータとして使える FIRフィルタが設計できました。

次回は折角デジタル化した信号を、元のアナログ信号に戻す事を考えます。
結構それも S/N比を考慮すると難しいですが、宜しく。
by    JA1QVM

PS:上記の簡易アセンブラで長い命令文を使うのはメーカで推奨されません。
パクる人は自己責任でお願いします。



Viewing all articles
Browse latest Browse all 161

Trending Articles