« FRボードで再生させた曲の元ネタを公開 | トップページ | USBジョイスティックサンプルを動かしてみる »

2008年7月 7日 (月曜日)

リロードタイマを補足する

前々回のエントリで突然リロードタイマの話を持ち出してしまったのでここで補足。

リロードタイマとは、

簡単に説明すれば

  1. カウントダウンのスタート値が決まっている(16bitなので最大で65535)
  2. タイマがスタートすると、設定で決められた一定周期毎にカウントダウンする(周期が1秒ごとならばスタート直後は65535で1秒後は65534・・・と続く。なお、イメージを分かりやすくする為に1秒ごとと書いたが、実際の周期は周辺クロック周波数を分周するので大抵はμ秒のオーダーのはず)
  3. カウントが0まで到達するとカウントダウン終了(ハードウェアマニュアルではカウンタボローと書かれていたりする)で割り込みが発生、定義された関数が実行される
  4. その後、カウンタのスタート値がもう一度セットされ(これがリロード)、再び本手順の2以降の動作が続く

という動作をするタイマーである。ただし、ワンショット(一回限り)動作と言う設定もあり、
この設定だと上記の手順4でタイマは終了する。

ちなみに上記の手順1で設定する値は、値のロード自体に手順2における「一定周期」を必要とする仕組みなので、実際には待たせたい値から「1」を減じた値を設定する事になる(例えば1000ならば999)のがポイントである。これはハードウェアマニュアルのP224「16ビットリロードタイマの動作説明のタイムチャート」を見ると分かる。

理屈はさておき、実際に使ってみたい!と言う場合はインターフェース2008年6月号第3章の『FRマイコン基板を使用した「脳ちょこっトレーニング・ゲーム」の製作』にサンプルがあるのでこれを参考にすると良い(リロードタイマの「-1」する理由とか書いてあると尚良かったなぁ)。

ちなみにこのコードではCLKP(周辺クロック)の設定をinit.cのinit関数内で行っている。以前のエントリで紹介したサンプルではstartup.asmにて処理していたが、このようにしても良いらしい。

|

« FRボードで再生させた曲の元ネタを公開 | トップページ | USBジョイスティックサンプルを動かしてみる »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/2790/41742940

この記事へのトラックバック一覧です: リロードタイマを補足する:

« FRボードで再生させた曲の元ネタを公開 | トップページ | USBジョイスティックサンプルを動かしてみる »