わがロボットの譜

千葉工業大学、総合工学研究会所属の者です。とりあえず、二足歩行ロボット作成日誌です。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

SH7125のPWM増設

とりあえず、二足歩行ロボットに必要な数をマイコン1つでまかないたいなと思い、
PWMを23本出すプログラムを書いてみました。
半ソフトウェアPWMといったようなプログラムです。

まずはソースを
PWM23.txt

すべての周期の制御はMTU20のカウンタのオーバーフローでおこなわれています。
ここで初期値1,コンペアマッチで0としてあげることで、現在の出力値はhighになり、
コンペアマッチで対応するピンの出力値がlowになります。

これで16本のPWMを確保することができます。
あとは、MTU20のTGRE,F,MTU25はそのような機能を持っていないので、
プログラムで適当なピンを対応するピンとしてhighとlowを切り替えます。
これでも21本で二足歩行ロボットには少し足りないかなと思い、TGRE,Fの2つを
2つのピンに振り分けることによって23本のPWMを出しています。
なので、TGRAの12~15ピンのみ、周期が他のピンの倍で、遅くなってしまっています。

コンペアマッチタイマを使えば同等の事を行うことができ、周期を落とさずにPWMを増やすことができますが、
wait関数や周期的な割り込みも必要になってくると思うので、残しておくことにしました。

振り分けるピンを多くすることによってさらにPWMの本数を増やすこともできます。
振り分けるときは次のパルスに移行するときに、ジェネラルレジスタの値も対応するピンの出力に変える必要があります。


実際にロボットを制御したわけではないので詳しいことはなんとも言えませんが、
今のところ、波形では満足のいくレベルでPWMが出ています。。


いろいろ書いたけれどもまとまらない…

何か質問あればどうぞということで。。


スポンサーサイト

PageTop

コメント


管理者にだけ表示を許可する
 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。