ATMEGAで学習しよう(レッスン4)
「8 ビットタイマ(CTC モード)」
<目的>
・8 ビットタイマ(CTC モード)の時間生成方法について学ぶ。
<動作概要>
・SW1 が押されたらLED1 を約0.2 秒毎に点滅させる。(外部割り込み0)
・SW2 が押されたらタイマを停止する。停止タイミングにより点灯か消灯になる。(外部割り込み1)
<ポイント>
・タイマの停止と起動はプリスケーラ設定で行う。
・タイマ(ノーマルモード)と異なり、希望時間を得るためのカウント値の再セットは不要。
・タイマ(ノーマルモード)と異なり、カウンタの最大値は自分で設定でき、その次のカウントアップで0x00 にクリアされカウントアップが継続する。
・タイマ(ノーマルモード)と割込み名称が変わるので注意。
<レジスタ説明>
動作モードをレッスン3 のノーマルモードではなく、CTC モードにしています。
そのために、TCCR0A レジスタの1 ビット目(WGM01)、0 ビット目(WGM00)を設定します。
表を見ると、WGM02、WGM01、WGM00 が0,1,0 のときCTC モードとなっています。
カウント値 セットのところで、0CR0A = 195 を設定しています。
TIMSK0 レジスタの設定をします。
CTC モードを使用するので、ビット1 のOCIE0A を1 にします。
ビット2 のOCIE0B もCTC モード用ですが、本レッスンでは使用しません。
<プログラム>
この記事が気に入ったらチップで応援してみませんか?