AVRマイコンではタイマーのカウントアップ(orダウン)を使って割り込みや出力を行うことができます。
タイマーはタイマ1,2,3の種類がありそれぞれの種類にA,Bというチャンネルがまた2つづつあります。
つまりレジスタは3つですがそれぞれに2つ比較できるようになっています。
タイマ1は8bit、タイマ2は16bit、タイマ3は8bitでシステムクロックと非同期にカウント可能です。
またここではAVRマイコンをATmega328Pとして解説していきます。
大まかな説明として下の画像見てください。
&ref(): File not found: "gazou1.jpg" at page "タイマー・PWM";
このようにタイマーは定期的に何かをしたい時に使うのに適しています。
レジスタについては下のページにまとめました。これからの説明は下のページを別タブで開くなどして御覧ください。
タイマーに関係するレジスタ
まずタイマーには4つの動作があります。
一番単純でタイマーをTCCRAのCSで設定したタイミングでカウントアップしていきます。
比較レジスタOCR0Aがカウントする最大値となりそこまでいくと0に戻ります。
&ref(): File not found: "gazou2.jpg" at page "タイマー・PWM";
もう画像貼るのだるいよ(´Д`)
データシート見てね。
3の高速PWM動作の上のカウントの仕方が始めはカウントアップで最大までいったらカウントダウンするよ
TCCR0Aを設定
↓
TCCR0Bを設定
↓
割り込みをする場合はTIMSK0を設定
プログラム中
OCR0x(比較するレジスタ)を変更可