としぶぅ~の「工作部屋」...毎日少しのお勉強

趣味・関心事を書いていこうと思います。

PIC16F88を動かす。。。その40(PWM:その7)

2012-11-08 05:33:01 | PIC16F88

おはようございます。
としぶぅ~です。

今日も起きれました^^

昨日の続きしようと思いましたが、PWMで引っかかっていたところ解決!
よって今日はそこ確認します。

マニュアル見ていたらありました。
そこらじゅうに”CCPMX”という表記があるのに気づきました。。。
なんだこの”CCPMX”って・・・?
PWMに関連するところいろいろ探しましたが見つからない・・・・
で、マニュアルを検索!すると。。。。CONFIGの中に”CCPMX”がありました。

 ※PIC16F88データシート抜粋 


全く気がつかなかった・・・・(-o-)
CONFIGレジスタの12bit目がそれでした。
いつものごとく、プログラムの頭で設定してあげると・・・・動いた。。。(^^)

RB0を使うときは
__CONFIG(FOSC_INTOSCIO & WDTE_OFF & PWRTE_ON & MCLRE_OFF & CPD_OFF & BOREN_OFF & LVP_OFF & CP_OFF & FCMEN_OFF & IESO_OFF & CCPMX_RB0);

RB3を使うときは
__CONFIG(FOSC_INTOSCIO & WDTE_OFF & PWRTE_ON & MCLRE_OFF & CPD_OFF & BOREN_OFF & LVP_OFF & CP_OFF & FCMEN_OFF & IESO_OFF & CCPMX_RB3);

  マーカー部分です

とします。

あとは、PWMの出力として使用するポートをOUTに設定する。
/*************************************************
RB0 or RB3をPWM出力に設定
*************************************************/

// TRISB0=0; //RB0出力に設定
TRISB3=0; //RB3出力に設定
// RB0=0; //Lに初期化
RB3=0; //Lに初期化
CCP1CON=0x0f ; //00xx1100 CCP1(RB0 or RB3)はPWMモード出力優先に設定

TRISB0=0 or TRISB3=0のどちらかをコメントにする。

  マーカー部分です

これで動作します。

一応確認

ch1をRB0に、ch2をRB3にプローブを接続

CCPMX_RB0をコンフィグレジスタに追加した時の波形

ch1をRB0に、ch2をRB3にプローブを接続

CCPMX_RB3をコンフィグレジスタに追加した時の波形

という感じです。

一応意図したように動いているようです。

 

ちょっと最近思うこと。。。。LCDの処理速度が遅すぎる。

表示する関数を入れると、その次の処理が無視されたり。。。いろいろです。

一度処理速度を早くすべく見直しが必要かも。。。。

 

と、今日はこんなところです。

ちょっと戻りましたが、なんとかもやもやしたところは解決しました。

PWMはこれでかんりょうかな。。

 

明日はSPIのレジスタの訳をしていきます。。。

 

では今日はこの辺で。。。。皆様、よい一日を~(^o^)/