PIC16F873には3種類のタイマーがあります。それぞれの仕様について以下に説明します。
タイマー0
タイマー1
TMR1IEレジスタのPIEビットを1にセットすることによりカウントオーバーフロー割り込みが有効になり、カウンターがFFFFhから0000hになったときにTMR1IFにオーバーフロー表示がされ、割り込みが発生します。
モードの切り替えはT1CONレジスタのTMR1CSビットにより指定します。TMR1CSビットが0の場合はタイマーとして使用し、1の場合はカウンターとしての使用になります。 タイマーモード タイマーモードの場合にはカウンターは内部クロック信号(FOSC/4)によりカウントアップされます。 タイマー1はT1CONレジスタのTMR1ONビットにより動作/停止を制御することができます。また、タイマー1は内部リセットが可能です。このリセットはCCPにより制御することができます。 タイマー1専用の発振器を使う場合にはT1CONレジスタのT1OSCENビットを1にします。そして水晶などの発振器をピン11およびピン12に接続します。発振周波数は200KHzまで可能です。これらのピンはRC0およびRC1の入出力ピンを兼ねていますが、入出力ピンとしての機能は無効になり、TRISCレジスタの設定も無効になります。 カウンターモード カウンターモードの場合には外部クロックの立ち上がりによりカウントアップされます。 T1CONレジスタのT1OSCENビットが0の場合にはT1CKI(pin11)に入力される信号の立ち上がりでカウントアップされます。T1OSCENビットが1の場合にはT1OSI(pin12)に入力される信号の立ち上がりでカウントアップされます。 細かなことですが、カウンターモードに設定した直後ではT1CKI(pin11)が一度立ち下がる必要があります。Lレベルからスタートした場合、最初の立ち上がりはカウントされません。 T1CONレジスタのT1SYNCビットが0の場合、外部入力信号と内部信号の同期が行われます。同期動作はプリスケーラの動作で行われ、プリスケーラを出た信号は内部信号と同期しています。 CCP(Capture/Compare/PWM)機能のキャプチャおよびコンペアの動作ではタイマー1を使用します。 同期モードでない場合にはキャプチャーまたはコンペア動作でカウンターを使用することはできません。 CCPの動作についてはPIC16F873のCCP機能を参照して下さい。 タイマー2
タイマー2の主な使い方はCCPでのPWM機能です。連続パルスの周期を制御するために使用されます。 CCPの動作についてはPIC16F873のCCP機能を参照して下さい。 |