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

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

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

なんか、突然、サイトへのアクセスが急増したと思ったら、OsoScriptが海外のサイトで紹介されたようです。動画は言葉の壁を越えますね。ちゃんと、カタツムリのアイコンまで付いている。Good-Jobです。ver0.03をアップしないといけないなぁ。

ということで、DEMOJMでLED点灯の続きをば。

void putbyte_led(unsigned char c);

LEDを点灯させる関数の簡単説明をします。LEDは下図のようにそれぞれのポートに繋がっています。

回路を見てわかるように、ポートがLowになるとLEDは点灯するはずです。そこで、8個のLEDを1バイトの1ビットとして点灯する関数が、void putbyte_led(unsigned char c);です。引数 c の値をビット単位で点灯させます。

void putbyte_led(unsigned char c){
  c = (unsigned char)(~(int)c);
 
  PTDD_PTDD2 = c & 0x01;
  PTFD_PTFD5 = (c >> 1) & 0x01;
  PTCD_PTCD4 = (c >> 2) & 0x01;
  PTCD_PTCD2 = (c >> 3) & 0x01;
  PTFD_PTFD1 = (c >> 4) & 0x01;
  PTFD_PTFD0 = (c >> 5) & 0x01;
  PTED_PTED3 = (c >> 6) & 0x01;
  PTED_PTED2 = (c >> 7) & 0x01;
  return ;
}

LEDはLowのときに点灯するので、c を反転させて、それぞれのビットを各ポートにセットします。この関数を呼ぶことにより、LEDが点灯します。

タイマ割り込み関数

RTCタイマ割り込みの設定により、0.5s間隔で、割り込みが発生します。このとき呼ばれる関数がinterrupt VectorNumber_Vrtc void int_timer( void );です。この関数の中で、LEDの点灯と、点灯させる値の変更計算を行います。

interrupt VectorNumber_Vrtc void int_timer( void ){  
  RTCSC_RTIF = 1; //リアルタイム割り込みリクエストのクリア
  putbyte_led( C );
  C += Step;
}

RTCSC_RTIFは、前回説明したRTCレジスタの割り込みリクエストを初期化するビットです。
ここで、変数 C の値に Step値を加算します。Step値は押されたキーボードのによって変化します。
続けて、キー割り込みの説明です。

キー割り込み

キーの割り込みが発生したときに、呼ばれる関数がinterrupt VectorNumber_Vkeyboard void chk_key_stat( void );です。この関数の中で、押されているキーを判断して、Stepの値を変更しています。

interrupt VectorNumber_Vkeyboard void chk_key_stat( void ){  

  if( KBI1SC_KBF ){
    KBI1SC_KBACK = 1;
    if (!PTGD_PTGD0) {
      Step = 1;
    } else if (!PTGD_PTGD1) {
      Step = -1;
    } else if (!PTGD_PTGD2) {
      Step = 0;
    }
  }
}

下記に、もう一度、キーボードの回路図とキーボード割り込みのレジスタの表を示しておきます。関数内では、KBI1のキー割り込みが発生したのかどうかを、KBI1SC_KBFビットを見て調べます。そして、Trueであれば、どのキーが押されたかを、PTGのビットを見て、GNDに落ちているかどうかで調べます。このプログラムだと、同時押しは1つだけTrueになりますね。
そして、それぞれキーによって、Stepの値を変更します。

次は、コンパイルデバッグの説明をしたいと思います。

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

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

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

海外からのアクセスが急増

海外からのアクセスが急増したので調べてみると、NDS用のOsoScriptが海外のサイトで紹介されたようです。ニコニコ動画の映像がYoutubeにも転載されたみたいです。とりあえず貼っておきます。

この動画の1つ前にニコニコ動画にアップしたNDSの動画も貼っておきます。
美人時計DSです。これは非公開です。
D

以上。