2003年12月28日(日)
タイマーはプログラム上、正確な時間管理や外部からの信号カウント、CPUの暴走を監視するウォッチドックタイマ、PWMなどを実現する重要な機能のひとつです。PIC16F628にはタイマーが3セット入っており、各タイマの機能と設定は次の通りです。
●TMR0
8BIT PRESCALE 1:2 1:4 1:8 1:16 1:32 1:64 1:128 1:256
外部入力 RA4/TOCKI
TMR0 01H
●OPTION REGISTER
TMR0の設定はバンク1に存在するOPTION REGISTERで行います。
★TOCS
まずクロックソースは外部入力(RA4)の場合、TOCSに1を立てます。内部クロックの場合はTOCSを0にします。
★TOSE
外部入力の場合は次にカウントタイミングをセットします、クロックパルスの立ち上がりエッジでカウントする場合はTOSEに0をセット。立ち下りの時は1をセットします。
★PSA
入力クロックの周期を下げたい時はプリスケーラーを使用します。使用しない場合はPSAに1をセットします。これでクロックX1でカウントします。0をセットした場合はプリスケーラーが有効になりますので次のPS0-2のビットで比率を設定します。
★PS0-2
PS0、PS1、PS2の3ビットはプリスケーラーの比率を設定します。設定は次のようになっています。 OPTION REGISTERはバンク1の81hに存在しますのでバンク1に切り替えて、OPTION REGISTERをセットし又、バンク0に戻すようにします。実際には次のようにプログラミングします。
設定例
外部入力(RA4) 立ち下りカウント プリスケール 1:2
bsf STATUS,RP0 ;SET BANK1
bcf STATUS,RP1 ;
bsf OPTION_REG,T0CS ; RA4 CLOCK INPUT
bsf OPTION_REG,T0SE ; RA4 EDG H->L COUNT
bcf OPTION_REG,PSA ; PRESCALE TMR0 MODE
bcf OPTION_REG,PS0
bcf OPTION_REG,PS1
bcf OPTION_REG,PS2
bcf STATUS,RP0 ; SET BANK0
bcf STATUS,RP1 ;
上記の設定は次の記述でも可
bsf STATUS,RP0 ;SET BANK1
bcf STATUS,RP1 ;
movlw B'00110000'
movwf OPTION_REG
bcf STATUS,RP0 ; SET BANK0
bcf STATUS,RP1 ;
次回はタイマ−1の設定を解説します。
|