78K0班(2005/09/09) A/D変換

LEDマトリクスに戻って、輝度をボリュームで調整できるようにしてみます。要するに、ボリュームの値をA/D変換で読み取って、PWMのデューテーを変えるだけなんですけど。


プログラムは次のような感じ。A/D変換完了時に、その値をCMP10レジスタに設定しています。あとは、う〜ん、コメントすることを思いつきません。

        ADCS = 0;
        ADCE = 1;
        PM2.7 = 1;
        ADPC = 0b00000111;
        ADM = 0b00000001;
        ADS = 7;
        ADIF = 0;
        ADMK = 0;
        ADPR = 1;

        vramInit();

        EI();

        TCE50 = 1; /* ダイナミック点灯タイマスタート */
        TMC00 = 0b00001100; /* スクロールタイマスタート */
        ADCS = 1; /* A/D変換開始 */

        for (;;) {
                outputNextLine();
        }
}

__interrupt void
intad() {
        P5.0 ^= 1; /* P5.0は点滅 */
        CMP10 = ADCRH;
}

ホーム 特殊工作室 78K0班