コンピュータを楽しもう!!

今、自分が面白くていろいろやってみたことを書き綴りたいと思います。連絡先はtarosa.yでgmail.comです。

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系のプログラム