AVRマイコン アセンブリ言語入門 ― 8bitタイマ
前回までで、環境の構築からアセンブル、書き込み、動作確認までをやりました。
今回から、AVRマイコンが持っている沢山の機能を、一つづつ攻略していきたいと思います。
初回の今回は、「8bit タイマ」です。
- タイマって何するの?
なにかつくろうとする時、一定の時間ごとに処理をしたいってことがあります。
一秒ごとに秒針を動かす時計とか、一定時間内のパルス数を数える周波数カウンタとか・・・
この「一定の時間」を生み出す機能がタイマになります。
- どうやって「一定の時間」をつくるの?
実は、そもそもマイコンは「一定の時間」をもとに動いていますよね。
そう、基準動作クロックってやつです。
今使っているATmega168Pだと、最高20MHzまで使えるあの「クロック」です。
このクロックのパルス一個づつを決まった数だけ数えて「一定の時間」を生み出すのです。
- 動作モード
AVRマイコンのタイマには、「ノーマルモード」と「CTCモード」の2種類の動作モードがあります。
ノーマルモードというくらいなので、こちらが標準的な使い方だろう・・・と思ったのですが、はっきり言ってこのモード、使い道がよくわかりません。
いや、僕の知識と経験が浅いからなのでしょうが、どういう場面でノーマルモードを使えばよいのか、今の僕にはよくわからないのです。
この先、使っていくうちに「あっ!こういうことかっ!!」と言う時が来るかもしれないので、それまでこのモードは無視することにしました。
というわけで「CTCモード」です。
おそらく、タイマ動作が必要になればCTCモードで全てカバー出来ると思いますし、はっきり言ってノーマルモードよりも使い方が簡単です。
次回から、具体的な使い方と、実際に動作させてみて、あの「Lチカ」をやってみたいと思います。