2022.11.1
前へ
次へ
ホームページトップへ戻る


PIC−USBIO using BASIC

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第89回]



●PICUSBIO−03(38)Timer1(20)COMPAREモード

今までCCPのCAPTUREモードについて説明をしてきました。
CCPにはCAPTUREモードのほかにCOMPAREモードがあります。
そのほかにPWMモードというものもあるのですがそれはTimer2を使うモードなのでもう少し後になってから説明することになると思います。

下はCOMPAREモードのドキュメントです。

[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet

COMPAREモードはCAPTUREモードと同じようにTimer1かTimer3を使います。
Timer1かTimer3かの選択はT3CONレジスタで指定します([第78回])。
以下の説明ではTimer1が指定されているものとして説明します。
CAPTUREモードではCCPR1レジスタをTimer1のラッチレジスタとして使いますがCOMPAREモードではCCPR1レジスタに設定した値をTimer1のカウント値と比較し値が一致したときに所定のアクションを起こすための設定値レジスタとして使います。
値が一致するとPIR1レジスタのCCP1IFフラグがセットされます(PIR1は[第73回]参照)。
CCP1IFフラグがセットされるほかにCCP1CONに設定した値に従って(1)CCP1端子の出力を反転する(2)CCP1端子の出力をHにする(3)CCP1端子の出力をLにする(4)CCP1割込信号のみを出す(5)内部ハード回路のための特別の信号(Special Event Trigger)を出す、という動作をします。

CCP1のコントロールレジスタCCP1CONは前回もお見せしましたが下に再掲します。

[出典]Microchip Technology Inc. PIC18F13K50/14K50 Data Sheet

bit3−bit0を0010にするとCOMPAREモードになり、CCPR1の設定値とTimer1のカウント値が一致するとCCP1端子の出力が反転します。
bit3−bit0を1000にするとCOMPAREモードになってCCP1端子の出力がLに初期設定され、CCPR1の設定値とTimer1のカウント値が一致するとCCP1端子の出力がHになります。
bit3−bit0を1001にするとCOMPAREモードになってCCP1端子の出力がHに初期設定され、CCPR1の設定値とTimer1のカウント値が一致するとCCP1端子の出力がLになります。
bit3−bit0を1010にするとCOMPAREモードになり、CCPR1の設定値とTimer1のカウント値が一致するとCCP1割込信号が出されます。
bit3−bit0を1011にするとCOMPAREモードになり、CCPR1の設定値とTimer1のカウント値が一致すると内部ハード回路のための特別の信号(Special Event Trigger)が出されます。
このときTimer1はリセットされます。
bit3−bit0を0010、1000、1001に設定するときはCCP1端子の出力を有効にするためにTRISCのビット5を0にしなければなりません。
CCP1端子はPORTCのRC5端子と多重化されています(pin5)。
このときpin5はCCP1出力端子になります(RC5はpin5から切り離されます)。
bit3−bit0を1010、1011に設定したときはCCP1出力は使いません。
pin5はRC5入出力端子になります。
このときはCCP1のためにTRISCの設定を変える必要はありません。

PIC−USBIO using BASIC[第89回]
2022.11.1upload

前へ
次へ
ホームページトップへ戻る