78K0班(2005/09/02) 16ビットタイマ

LEDマトリクスの表示をスクロールさせるのに、豪勢に16ビットタイマを使ってみます。16ビットタイマを使う必然性もないのですが・・・ タイマ割込みではなく、ポーリングしています。


前回までで文字列表示ができたので、それをスクロールさせてみます。スクロール処理内容は、下記の本と同じです。

16ビットタイマは00を使っています。main関数から関係するところを抜粋すると、以下のようなかんじ。クロックを79.12KHzに分周しています。タイマ割込みを使わず、フラグTMIF000をポーリングして、時間の経過を待っています。

        PRM00 = 0b00000010;
        CRC00 = 0;
        CR000 = 3905;
        TOC00 = 0;
        TMIF000 = 0;
        TMC00 = 0b00001100;

        vramInit();

        EI();

        TCE50 = 1; /*  timer start */
        for (;;) {
                CMP10 = P4 & 0xe0;
                if (TMIF000 == 1) {
                        TMIF000 = 0;
                        vramScroll();
                }
        }
}

次は、タイマ割込みかな?


ホーム 特殊工作室 78K0班