- メインページ
- ネームスペース
- クラス
- ファイル

- ファイル一覧
- ファイルメンバ

# main.cpp

説明を見る。

    00001 /** \mainpage
    00002 *
    00003 * このプログラムは、ADSP-BF537を搭載する評価基板、EZ-KIT BF537のデモ・プログラムである。
    00004 *
    00005 * ::main 関数を実行すると、各種の初期化を行い、割り込みハンドラ afw::ISRを登録した後、
    00006 * 割り込みとDMAを許可してオーディオ信号の送受信を行う。オーディオ信号はSPORT0経由で入力
    00007 * し、DMAによってメモリ上に格納される。2次元DMAの各行が終わるたびにオーディオ信号受信割り込み
    00008 * が発生し、 afw::ISRが呼び出される。
    00009 *
    00010 * afw::ISRは割り込みをクリアし、トリプルバッファの制御を行う。そしてしかるべきデータを
    00011 * DMAの受信バッファから取り出すと、使いやすいよう並べなおしてユーザー定義のコールバック関数
    00012 * afw::processDataを呼び出す。
    00013 *
    00014 * afw::processDataは実際に信号処理を行う。外部から読み込んだボリューム値を元に afw::lfoの
    00015 * 周波数と振幅を決める。周波数は最大8Hzである。 afw::lfoの値はそのまま振幅として afw::toneの
    00016 * 出力にかける。
    00017 *
    00018 * afw::processDataの呼び出し関数である afw::ISRは出力データを並べ替えて然るべきDMAバッファに
    00019 * 格納する。
    00020 *
    00021 * EZ-KIT Lite BF-537のディップスイッチの設定は以下のとおり
    00022    - SW1 : すべてOFF
    00023    - SW7 : すべてON
    00024    - SW8 : 1-2をON、残りはすべてOFF
    00025 */
    00026
    00027 /** \file main.cpp
    00028  *  \brief メイン関数定義ファイル
    00029  *  \author アナログ・デバイセズ株式会社
    00030  *
    00031  * このプログラムはVisualDSP++ 4.5のサンプル・アプリケーション、TalkTrhoughから
    00032  * 派生させたものである。EZ-KIT BF537のリソースを初期化し、48Ksample/Sのオーディオ
    00033  * フレームワークを起動する。受信データはコールバック関数 afw::processData によって
    00034  * 処理される。
    00035  */
    00036
    00037
    00038 #include <ccblkfn.h>
    00039
    00040 #include "afw.h"
    00041 #include "cec.h"
    00042 #include "twi.h"
    00043 #include "ad7998.h"
    00044 #include "utilbf537.h"
    00045
    00046
    00047 /** メイン関数
    00048    *
    00049    * 各ペリフェラルを初期化後、割り込み待ちに入る。
    00050    */
    00051 void main(void)
    00052 {
    00053     utilbf537::initPLL();   // PLLを設定する
    00054
    00055                     // 各ライブラリの初期化
    00056     cec::init();            // コア・イベント
    00057     twi::init(120);         // TWIペリフェラル
    00058     ad7998::init();         // ad7998
    00059     afw::init();            // オーディオ・フレームワーク
    00060
    00061                     // 各作業の処理開始
    00062     cec::start();           // コア・イベント
    00063     twi::start();           // TWI
    00064     ad7998::start();        // AD7998
    00065     afw::start();           // オーディオ処理
    00066
    00067     while(1)
    00068         idle();             // 割込み待ち
    00069 }
    00070
    00071
    00072
    00073