ここから本文です

ただ今、ライントレースロボットを製作しております その際に、PIC16F68...

nee********さん

2013/1/1518:33:44

ただ今、ライントレースロボットを製作しております
その際に、PIC16F688を用いてPICにプログラムの書き込み作業をしています。ですが、PIC16F688の参考例がなくプログラミングが進みません。

MPLABを用いた場合にPWM制御を行うにはどうすればいいでしょうか?
現状として、PIC16F87XについてのものはいけたのですがそれをPIC16F688にするにはどうすればよいのかを教えて頂ければ幸いです。
当方学び始めで上手に説明できていませんが、よろしければご教授お願いします。

閲覧数:
394
回答数:
2
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

2013/1/1607:12:38

PIC16F688 には、PIC16F87X等の様にPWMを行う為の内蔵機能であるCCPがありません。 そうなると、PWMをソフトウエアの力だけで作って実現する以外に方法がありません。

システムクロックを使ってTimer0のカウントアップ割込でインターバルタイマーを作って、内部に基準になるmsec単位のタイミングを作ってこれをさらにソフトウエアでカウントし、0から50まではOFF、51から100まではON。カウントが100を超えたらカウントを0に戻しておく。

これで0.1sec周期の50%デューティー比のパルスができます。

デューティー比はカウンタの比較値を変数にすれば簡単に変更可能になります。

基本的に、通信機能も何でも無い機能は全てソフトウエアで造り上げる事が可能ですよ。それをブラックボックスで作ってしまっては、いつまでもPICを自由に扱う事が出来なくなってしまいます。

頑張って下さいね。

ベストアンサー以外の回答

1〜1件/1件中

yam********さん

2013/1/1523:49:25

>MPLABを用いた場合にPWM制御を行うにはどうすればいいでしょうか?

MPLABなんぞやめて、mikroBasicとかmicroCをお使いなさい。

おそらく初期(FUSE)設定で躓いているんだろうが、上記のソフトは一覧から選んでチェックマークを付けるだけだ。

後は、アナログ設定だけできれば、PWMの構文ははじめから用意されてるのでできる。

チップごとの設定の違いを超えるのには、一番親切な言語(というか、統合ツール)だ。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる