LEDを点灯させてみる(3)
前回の続きということで、初期化の説明をしたいと思います。
キーボード割り込みの設定
ここまで書いてきて気づきました。てっきり、参考サイトの「S08ではじめるマイコン制御プログラミング(3)」を参考にしてDEMOJM用のプログラムを作ったと思っていたのですが、違っていました。「S08ではじめるマイコン制御プログラミング(4)− LEDの制御に時間の概念を取り入れる」を参考にして作ったプログラムでした。
ということで、気を取り直してキー割り込みです。DEMOJMのキーの回路図は下記です。
スイッチの接続ポートはポートGの0〜3ですが、各ポートに割りついているキーボード割り込みレジスタは、KBIP0,KBIP1,KBIP6,KBIP7になっています。最初、これに気づかなくて悩みました。これらのキーボード割り込みを設定します。
KBI1PEレジスタを1にすれば、キーボード割り込みの検出ができるようになります。また、KBI1SCレジスタのKBIEを1にすると、キーボード割り込みがオンになります。他の設定(AckとDetectionMode)は初期値のままでOKです。
//キーボード割り込みの設定 KBI1PE_KBIPE0 = 1; //キーボード割り込みポート0をセット PTGPE_PTGPE0 = 1; //ポートG0をプルアップする KBI1PE_KBIPE1 = 1; //キーボード割り込みポート1をセット PTGPE_PTGPE1 = 1; //ポートG0をプルアップする KBI1PE_KBIPE6 = 1; //キーボード割り込みポート2をセット(KBIPE6に注意) PTGPE_PTGPE2 = 1; //ポートG0をプルアップする KBI1SC_KBIE = 1; //KBI1のキーボード割り込みを許可する
また、回路図を見ると、スイッチはGNDに落ちています。なので、ポートGは内部でプルアップしておく必要があります。さらに、キーボード割り込みはポートがLowになったときを検出する必要があります。レジスタの設定は下記です。
初期値0のままで、edge/Lowを検出するようです。それでは、ポートのプルアップです。これはポートGのレジスタ設定になるようです。
PTGPEレジスタを1にセットすると、内部プルアップするようです。
これでキーボード割り込みの設定が終了しました。次はタイマ割り込みの設定に行きたいと思います。
本当にやりたいことリスト
(ブログの終わりにやりたいことを書いておきたいと思います)
- 求職活動・・・このブログで興味を持った人一声かけてください。m(_ _)m
- Androidプログラム
- Web系のプログラム