PIC−USBIO using BASIC
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第109回]
●PICUSBIO−03(58)Timer2(7)シングルPWMモード(3)パルス出力プログラム(2)プリスケール
前回に続いて今回もシングルPWMモードのテストをします。
前回のテストでData Sheetにある計算式に値をあてはめて実行したところ出力パルスの周期もパルス幅も計算通りの値が得られました。
そこで今回は式に与える値を変えながらその結果を確認してみることにします。
前回の式は下記の2式です。
[周期]
Period=4*Tosc*(PR2+1)*(TMR2 Prescale Value)
Tosc=1/48(μsec)
プリスケール 1:1
PR2+1=120
周期=4*120/48=10(μsec)
[パルス幅]
Pulse Width=4*Tosc*(CCPR1L<7:0>:CCP1CON<5:4>)*(TMR2 Prescale Value)
Tosc=1/48(μsec)
プリスケール 1:1
CCP1CON<5:4> 00
CCPR1L=$0C(10進数 12)
パルス幅=4*12/48=1(μsec)
今回は上記のうちCCPR1Lの値のみを変えて波形を確認してみます。
その部分を変更したプログラムです。
CCPR1Lの値を$18(10進数では24)に変更しました。
前回は$0C(10進数では12)でしたから計算通りならばパルス幅は前回の倍の2μsecになるはずです。
プログラムを実行しました。
上側(CH1)がP1Aの出力で下側(CH2)がP1Bの出力です。
周期は10μsecで前回と変わりません。
パルス幅は計算通りの2μsecになりました。
今度はプリスケールの値を変えてみます。
20行のT2CONを4から5に変更しました。
T2CONのbit1−0を01にするとプリスケールの値が1:4になります。
T2CONは[第103回]で説明をしています。
プログラムを実行しました。
周期が4倍の40μsecになりました。
水平時間軸を2μsec/divにしました。
パルス幅も4倍の8μsecになりました。
プリスケールの値を1:16に変えてみます。
20行のT2CONを5から6に変更しました。
T2CONのbit1−0を10または11にするとプリスケールの値が1:16になります。
プログラムを実行しました。
周期が160μsecになりました。
プリスケールが1:1のときの16倍、1:4のときの4倍の値です。
水平時間軸を5μsec/divにしました。
パルス幅は32μsecになりました。
パルス幅もプリスケールが1:1のときの16倍、1:4のときの4倍の値です。
PIC−USBIO using BASIC[第109回]
2022.11.24upload
前へ
次へ
ホームページトップへ戻る