78K0班(2005/08/20)8ビットタイマ

前回の78K0班(2005/08/15)LEDマトリクスから1歩(いや、半歩かも)進んで、タイマを利用します。


78K0/KF2マイコンはいくつかのタイマを内蔵しています。ここでは、8ビットタイマTM50を使ってみます。といってもタイマ割込みを使うのではなく、ポーリングでタイマを利用します。

タイマTM50を、周期が約1msになるようにセットします。TMIF50をポーリングして、この値が1になれば1ms経過とみなしています。1msごとにLEDマトリクスを1行ずつ順に点灯させるとともに、7セグメントLEDの右下の縦棒を点滅させています。右上の縦棒は常時点灯にしているので、これを見比べれば点滅していることがわかるのではと考えましたが、実際に動かしてみると違いがよくわかりませんでした。

LEDマトリクスの駆動方法は前回と同じなので省略。

void main()
{
        h_initial();

        P5 = 0xfd; /*  P5.1は点灯 */
        P7 = 0x10;

        TCL50 = 0x06; /* Clock = 78.13KHz */
/*      TCL50 = 0x07; ダイナミック点灯を体感するにはこちら */
        CR50  = 78;

        TCE50 = 1; /*  タイマスタート */
        for (;;) {
                while (TMIF50 == 0)
                        ;
                TMIF50 = 0;
                P5.2 ^= 1; /* P5.2は点滅 */
                output_next_line();
        }
}

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


ホーム 特殊工作室 78K0班