重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

PIC16F1936でPWMのの実験をしているのですが
PWMの分解能10bitでデューティーを1023にしてもオシロで確認するとOFFの部分が現れます。
(画像は実際にオシロで計測したものです。)

設定は以下の通りです。

-------------------------
// 10bit
PR2 = 255;

// TMR2を選択
CCPTMRS0 = 0;

// PWMモードを選択
CCP1CON = 0b1100;

// プリスケーラを64にセット
T2CON = 0b11;

//TMR2クリア
TMR2 = 0;

// tmr2開始
TMR2ON = 0b1;

uint test1 = 1023;

// 下位2bitをセット
CCP1CON |= ((test1 << 4) & 0b110000);

// 上位8bitをセット
CCPR1L = test1 >> 2;
-------------------------

PR2を254とかにセットすると1023で常時ONの状態が続くのですが
10bitの255にすると最大値の1023をセットしても常時ONになりません。
プリスケーラを変更したりいろいろ悪あがきしたのですがどうにもうまくいきません。

10bitで常時ON(デューティー100%)を作り出すのは無理なんでしょうか?
設定が足りないな部分などあれば教えてください。

開発環境は MPLAB X です。
コンパイラは XC8 です。

お知恵をおかしください m(._.)m

「PICマイコン、PWMが100%になりま」の質問画像

A 回答 (1件)

その様な仕様ですデーターシートを見れば容易にわかることです。


http://ww1.microchip.com/downloads/en/DeviceDoc/ …

1023カウントで出力はOFFになります、同時に次のサイクルに入りますが出力に反映されるまで遅延時間(td)があるので100%デューティーにはなりません。

1024以上にするかPWMを使用せず単純にONにするかですね。

この回答への補足

TooManyBugsさん

ご回答ありがとうございます。

データシートの件ですが201ページに記載の内容でしょうか?
(日本語版のほうを見ています。http://www.microchip.jp/docs/41364B_JP.pdf)

デューティーは10bitで1023までしか設定できないと思うのですが1024以上に設定するというのは
具体的にどのようにするのでしょうか。

すみませんが再度ご回答いただけると幸いですm(._.)m

補足日時:2015/01/18 11:54
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!