[H8-ML(3443)] RE: [H8-ML(3441)] PWM出力の方法
From: "Kazuhiro Nonaka" <non@xxxxxxxxxxxxx>
Date: 2003年06月24日(火)15時29分51秒
野中です。

> CH1、CH2で時間を変えているのはお
> っしゃるとおりで6個のその時間に応じたPWM信号を作りたいからで
> す。
> これでPWM信号は発生させることが出来るのでしょうか?お答え、宜しくお願
い
> します。

結論からいいますと、あの考え方では無理です。
1つのPWMを発生させることはできますが、6個にはなりません。(たぶん)
wait()の中で時間が経つまでまってますからね。
CH1が終わって、CH2を発生させていいのなら別ですが??
でも、それだとHIGHの期間がものすごく長くなってしまう。

また、僕が勘違いしているのかもしれませんが、
6チャンネルあるなら、出力は6本必要でしょうから、
	P5.DR.BIT.B0 = 0;
	wait(gnd);
	P5.DR.BIT.B0 = 1;
	wait(ch1);
	P5.DR.BIT.B1 = 0;
	wait(gnd);
	P5.DR.BIT.B1 = 1;
	wait(ch2);
     以下略
のようにBITにした方がいいですね

いずれにしても、このままでは作れません。
一番いいのは、最初のプログラムのようにPWMモードを使う方法ですが、
その他にも、タイマー割り込みを使う方法があります。
ウォッチドッグタイマーを使う方法が、ロボコンマガジンにのってました。
2足歩行ロボットの連載です。(ただし、SH2でしたが)

たぶん、HIGHとLOWを足した時間は一定ですよね。
だとしたら、wait()をただ単に時間待ちにせずに、このwaitの中で
High,Lowの切り替えをするという方法もありそうです。

スレッド概略
[3441(R)](起点)
 └[表示中]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]