【タイマの構成と使い方】
PIC10F20x内蔵のタイマは、8ビット構成のタイマ0で下記のような
構成となっています。
コンパレータを内蔵するかしないかで入力ソースの部分がことなっていて
コンパレータがある場合には、コンパレータの出力をタイマの入力ソース
とすることができます。
プリスケーラはウォッチドッグタイマと共用になっており、いずれか片方にしか
使えませんの注意が必要です。
タイマ0の基本的な使い方は下記の2種類となります。
(1)インターバルタイマ
一定時間の遅延あるいは周期が必要なときに内部クロックを入力ソース
として動かします。
(2)イベントカウンタ
外部ピン(T0CKI)あるいはコンパレータ出力のパルス数をカウントする
使い方で、数量や回数をカウントする使い方です。
【関連SFR】
タイマ0を使う時に関連するSFRはOPTIONレジスタとなります。上図のブロック
図にある台形のスイッチ等がこのOPTIONレジスタの各ビットで制御されます。
コンパレータ出力をソースとする場合には、コンパレータ用のSFRも関連
してきます。
これの制御にはCMCON0レジスタのCMPT0CSビットの設定が必要です。
【時間設定の仕方】
インターバルタイマとして使う使い方の例で説明しましょう。
タイマ0でインターバル時間を設定するときには、TMR0のカウンタが
アップカウンタですので、下記の関係で時間が決まります。
命令サイクルは、4MHzクロックの場合 1μsecですから、
(時間)=1μsec×(プリスケーラ値)×(256−(TMR0設定値))
従って最長のインターバル時間は
Max = 1μsec×256×(256−0) = 約65.5msec となります。
また、TMR0のオーバーフロー発生は割り込みフラグがありませんので
TMR0を読み取ってオーバフローしたことを検知する必要があります。
このときには、チェック中にオーバーフローがたまたま発生すると
TMR0 = 0 が検知できませんので、上位5あるいは6ビットが0になった
ことでオーバーフローを検知する必要があります。