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

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

LEDを点灯させてみる(4)

タイマ割り込みの初期設定について書きたいと思います。

タイマ割り込みの設定

参考サイトの「S08ではじめるマイコン制御プログラミング(4)− LEDの制御に時間の概念を取り入れる」と同様に、0.5s間隔でLEDを点灯させるプログラムにしたい思います。
そこで、参考サイトと同様にRTCを用いて0.5s割り込みを設定したいと思います。RTCレジスタの設定は下記の表です。


0.5sの割り込みを設定するためには、参考サイトと全く同じ設定となります。

  RTCSC_RTCLKS = 0;  //RTCLKSとRTCPSで割り込み時間を決める。
  RTCSC_RTCPS = 14;  //RTCLKS=0とRTCPS=14で500msとなる
  RTCSC_RTIE = 1;    //リアタイムカウンタの割り込みを許可する

Table.7-16を見ると、RTCLKS=00として、RTCPS=14(1110B)とすれば、割り込み間隔が0.5sになります。そこで、これを設定して初期化終了なので、リアルタイムカウンタの割り込みを許可して初期化を終了します。

 これで、初期化が終了です。もう一度、mcu_init()関数を書きます。

void mcu_init(void){

  SOPT1_COPT = 0;   //WatchDogTimerの停止
  
  //LED接続ポートのOUTPUT設定
  PTEDD_PTEDD2 = 1;
  PTEDD_PTEDD3 = 1;
  PTFDD_PTFDD0 = 1;
  PTFDD_PTFDD1 = 1;
  PTCDD_PTCDD2 = 1;
  PTCDD_PTCDD4 = 1;
  PTFDD_PTFDD5 = 1;
  PTDDD_PTDDD2 = 1;

  //キーボード割り込みの設定
  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のキーボード割り込みを許可する
  
  RTCSC_RTCLKS = 0;   //RTCLKSとRTCPSで割り込み時間を決める。
  RTCSC_RTCPS = 14;   //RTCLKS=0とRTCPS=14で500msとなる  

  RTCSC_RTIE = 1;     //リアタイムカウンタの割り込みを許可する
  
  return ;
}

次は、キー割り込みとタイマ割り込みの処理について説明したいと思います。

本当にやりたいことリスト

(ブログの終わりにやりたいことを書いておきたいと思います)

  • 求職活動・・・このブログで興味を持った人一声かけてください。m(_ _)m
  • Androidプログラム
  • Web系のプログラム