タイマーカウンターペリフェラルの概要

pp.177-180

クロックソースはシステムクロックでも外部ソースでもよい。

現在のカウント数は内部タイマーカウンターレジスターTCNTnに格納される。

TCNTnへは任意の値を書き込むこともできる。だから0にリセットすることが可能。

タイマーコンペアユニットは、或るカウント数に達したときに知らせてくれる。そのコンペア値はアウトプットコンペアレジスタOCRnに格納しておく。

コンペア値に達すると、コンペアイベントによってWaveform Generatorがトリガされる。Waveform Generatorによって何が実行されるかは、ウェーブフォームモードとアウトプットモードという2つのコンフィグレーションオプションの組み合わせによって決まる。

Waveform Generatorユニットは、ウェーブフォームモードに従って出力がカウンター、タイマー、PWMのいずれかの出力タイプになるよう設定できる。

各端子をセットするのかクリアするのかトグルするのかは出力モードで決める。

タイマーカウンターからも割り込みがかけられる。

ATmegaシリーズは8ビットタイマーを2個、16ビットタイマーを1個持っている。

タイマーカウンターには3つの動作モードがある。

  1. ノーマルモード:
    オーバーフローするまでカウントアップする。
  2. CTCモード:
    Clear Timer on Compare matchモード(コンペア一致時にタイマーをクリア)。オーバーフローするのを待たずに、OCRnAに格納してある値に達したときに自動的にカウント数がリセットされる。
  3. PWMモード