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


PIC−USBIO using BASIC

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

[第91回]



●PICUSBIO−03(40)Timer1(22)COMPAREモード(3)テストプログラム(2)

前回に続いて今回もプログラムを作ってCOMPEREモードのテストをします。
bit3−bit0を1000に設定します。
CCP1端子の出力がLに初期設定され、CCPR1の設定値とTimer1のカウント値が一致するとCCP1端子の出力がHになります。
下の画面右側がテストプログラムです。

前回のプログラムの一部を変更しただけです。
前回はプログラムの前の方でCCP1CONの設定をしましたが今回のプログラムでは繰り返しループの中で設定しています。
80行でCCP1CONに8を設定しています(bit3−bit0を1000に設定)。
CCP1CONに8を設定するとCCP1端子の出力がLに初期設定されます。
CCPR1の設定値とTimer1のカウント値が一致するとCCP1端子の出力がHになってそこでCOMPEREモードの動作は完了します。
繰り返しテスト動作を行なうためにはTimer1をクリアするとともにCCP1端子の出力をLに戻さなければなりません。
CCP1CONの設定をループの中に置いたのはそのためです。

プログラムを実行しました。

上側(CH1)がT13CKI端子の入力パルスです。
下側(CH2)がCCP1端子の出力です。
CCP1端子の出力はLに初期設定され、CCPR1の設定値とTimer1のカウント値が一致するとHになります。
そのすぐあとにまたCCP1CONが再設定されるため出力はLになります。
Timer1もクリアされるため、次の入力パルスの立上りから数えて10個目の立上りでまたCH2がHになります。

続いてbit3−bit0を1001にしてテストをしました。
bit3−bit0を1001にすると上のテストとは逆の動作になります。
CCP1端子の出力がHに初期設定され、CCPR1の設定値とTimer1のカウント値が一致するとCCP1端子の出力がLになります。

テストプログラムです。

さきほどのプログラムの80行のpicout CCP1CON,8のところを9に変えただけです。

プログラムを実行しました。

上側(CH1)がT13CKI端子の入力パルスです。
下側(CH2)がCCP1端子の出力です。
CCP1端子の出力はHに初期設定され、CCPR1の設定値とTimer1のカウント値が一致するとLになります。
そのすぐあとにまたCCP1CONが再設定されるため出力はHになります。
Timer1もクリアされるため、次の入力パルスの立上りから数えて10個目の立上りでまたCH2がLになります。

PIC−USBIO using BASIC[第91回]
2022.11.4upload

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