野中です。 > 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の切り替えをするという方法もありそうです。