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
前へ
次へ
ホームページトップへ戻る