デバイス設定
プロセッサーエキスパート(PE)を使って設定します。
下図のBeansフォルダがPEで設定した結果です。プロジェクト名はN_TIMERです。
・Byte1 :7セグメントLED出力ポート設定
・FC1 :時間タイマー設定
・IV1 :割込みベクタ設定
・Bit1 :スイッチ入力設定
・TO1 :圧電スピーカ出力設定
CodeWarriorで作成したプロジェクトフォルダをダウンロードできます。CODEフォルダに全てのソースがあります。
N_TIMER.lzh へのリンク←クリックしてダウンロードしてください。
【7セグメントLED出力ポート設定】
ポートBは全て7セグメントLEDに接続されます。下図のようにLEDはアノードコモンなので、アノードは3Vに接続されます。ポートBをHiにするとLEDのアノードとカソードは同じ電圧になるため電流は流れず、消灯します。ポートBをLowにするとLEDに電流が流れ、点灯します。従ってPTBは”1”で消灯、”0”で点灯となります。
【時間タイマー設定】
8ビットモジュロタイマを利用して、1秒を作ります。Period/offsetを1secに設定します。0.999秒となりますが、最大5分のタイマーですからそれ程厳密にする必要はないでしょう。
【割込みベクタ設定】
時間タイマーで生成した1秒で割込みを発生させますので、割込み処理関数を指定します。Interrupt vectorをVmtimに設定するとモジュロタイマーで割込みを受けます。発生した割込みの処理先をISR nameでSECに設定します。メインプログラムにISR(SEC)関数を記述して、割込み処理を行います。
【スイッチ入力設定】
スイッチの入力ポートを設定します。Pin for I/OをPTA1に設定し、Pull resistorをpull upに設定します。Init. directionをInputに設定してスイッチを受け付けます。プッシュスイッチですから、PTA1を読み込んだ時、OFFで”1”、ONは”0”となります。
【圧電スピーカ出力設定】
16ビットタイマー出力を設定します。CompareはTPM0、Output pinはTPMCH0に設定します。Pulse widthはクリック音の周期318.9μSに設定します。
【CPU設定】MC9S08QG8CPB
CPUの設定は特に変更していません。バスクロックは8Mhzです。MethodsでDelay100USをダブルクリックしてチェックを入れてください。
全ての設定が終わったら左上のコマンドProsessor ExpertのGenerate Code’プロジェクト名’をクリックしてコードを生成します。