プログラミングと工作と

PythonとかPascalとかAVRマイコンとか、コンパイラつくったり電子工作なんかを楽しんでいるおっさんの記録

AVRマイコン アセンブリ言語入門 ― 8bitタイマ

前回までで、環境の構築からアセンブル、書き込み、動作確認までをやりました。

今回から、AVRマイコンが持っている沢山の機能を、一つづつ攻略していきたいと思います。

初回の今回は、「8bit タイマ」です。

 

  • タイマって何するの?

なにかつくろうとする時、一定の時間ごとに処理をしたいってことがあります。
一秒ごとに秒針を動かす時計とか、一定時間内のパルス数を数える周波数カウンタとか・・・
この「一定の時間」を生み出す機能がタイマになります。

 

  • どうやって「一定の時間」をつくるの?

実は、そもそもマイコンは「一定の時間」をもとに動いていますよね。
そう、基準動作クロックってやつです。
今使っているATmega168Pだと、最高20MHzまで使えるあの「クロック」です。
このクロックのパルス一個づつを決まった数だけ数えて「一定の時間」を生み出すのです。

 

  • 動作モード

AVRマイコンのタイマには、「ノーマルモード」と「CTCモード」の2種類の動作モードがあります。
ノーマルモードというくらいなので、こちらが標準的な使い方だろう・・・と思ったのですが、はっきり言ってこのモード、使い道がよくわかりません。
いや、僕の知識と経験が浅いからなのでしょうが、どういう場面でノーマルモードを使えばよいのか、今の僕にはよくわからないのです。
この先、使っていくうちに「あっ!こういうことかっ!!」と言う時が来るかもしれないので、それまでこのモードは無視することにしました。

 

というわけで「CTCモード」です。
おそらく、タイマ動作が必要になればCTCモードで全てカバー出来ると思いますし、はっきり言ってノーマルモードよりも使い方が簡単です。


次回から、具体的な使い方と、実際に動作させてみて、あの「Lチカ」をやってみたいと思います。