• ベストアンサー

dsPICを用いたPWM出力

dsPIC(30F4012)でPWMの出力をしてやりたいのですがソフトの知識があまりなく困っています。外部の可変抵抗の値をAD変換した後にそのAD変換した値をデューティ比と比例させてPWM波形を出力してやりたいのです(リアルタイムで変化)。開発環境はMPLAB(C30)です。ご指導お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

何か複雑に考えすぎなような気がします。 PICは使ったことがないのでH8とかでの話になりますが、基本は一緒のはずです。 質問文から、やることは ・ADCが変換完了時に割り込み ↓ ・ISRでA/DデータレジスタからA/D値を取得、Duty比からPWM幅を計算してPWM設定レジスタに入れる(ここまでがAD変換完了割り込み) ↓ ・PWMは勝手に設定通りにパルス幅を変化させる と考えたので、この通りならPWMとADCのコードが一箇所にまとまっている必要はほとんどないと言えます。 せいぜい、ADCがパルス幅設定レジスタを知っている必要がある程度でしょう。

その他の回答 (1)

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

ええと、「やりたいこと」じゃなくて「その中でどこがわからないのか」を書いてもらえませんか? これだと、単純にA/D変換完了割り込みの中でPWM幅を変化させればよいと思う訳ですが。 ADCが外部とかいうと少し面倒ですが30F4012はADCもPWMも持ってるようなのであまり考えることはないと思いますけど。

thunder_5252
質問者

お礼

AD変換はできたのですがPWM出力のプログラムの中の関数の設定を行った後以降がわからないです。そして、AD変換とPWM出力を同じプログラム中に書くにはどうやったらいいのかもわかりません(文法的なこと)

関連するQ&A

専門家に質問してみよう