Summary: You will implement a multirate system that includes three fininte impulse response filters. The sample-rate compression and expansion factors can be controlled in real time using a MATLAB graphical user interface.
addm(add to memory:メモリーに加える)とbc(branch conditional:分岐条件)命令です。また、banz(branch on auxiliary register not zero:補助レジスタが0以外なら分岐)やb(branch:分岐)指示も役に立つでしょう。
mrateguiと打ちこみ、GUIを起動しなさい。図が自動的にスライダと共に開きます。 スライダを調節すると、DSPに送られた圧縮因子と拡張因子が変わります。
holdと名づけられたメモリー中のコンピューターから受け取っている最後の数を保存します。そのため、あなたがその与えられたコードの連続部を変えない限り、この場所においては、GUIによってセットされた最後の圧縮因子と拡張因子を見つけられます。シリアルポートに新しい数が受信される度に、圧縮と拡張因子が変換されるためには、コードの修正が必要です。もし"1"がシリアルポートに受信されたら、その全システムは最大限のレートで稼動します。またもし"10"が受信されたら、そのシステムは低レートで処理された各サンプル間で9つのサンプルを捨てます。
READSERとWRITSERマクロが、BKとコンディションフラッグTCと同程度に、AR0、AR1、AR2、そしてAR3レジスタを上書きする点に注意して下さい。そのため、これらのレジスタがあなたのコードに使われていないか、又はREADSERとWRITSERマクロをコールする前に、メモリにそれらの値を保存または復活させているかを確認しなければなりません。これはmvdmとmvmdの命令を使用して行うことができます。そのシリアルマクロはコールされる毎にAR1とAR3をセットアップするので、そのマクロをコールする前にそれらのレジスタを変える必要はありません。
READSERとWRITSERマクロに関する詳細は Core File: Serial Port Communication
Between MATLAB and TI TMS320C54xにあります。
Comments, questions, feedback, criticisms?