RL78/G12でマイコンの発振周波数20MHz、で周期20usでPWM出力を行っています。
PWMのduty比が25%の状態で、コード生成されるR_TAU0_Channel0_Stop関数を使用すると時々PWM出力ピンの値が1のままマイコンが停止してしまいます。
duty比を0.1%まで下げ500ms程度経過後にR_TAU0_Channel0_Stop関数を使用するとそのような現象は起こりません。
R_TAU0_Channel0_Stop関数を使用するのに必要な条件等あるのでしょうか。
よろしくお願い致します。
SUZUKIさん
たぶん確率の話かと思います。
duty比が0.1%なら中々アクティブなタイミングに当たらないので、LOWになりやすいかと思います。
タイマ停止後にTOmレジスタに値を設定すればタイマ出力レベルを任意に設定できますよ。
Kirinさん
ありがとうございます。
Stopしたタイミングの状態が維持されるという解釈で良いでしょうか。(Stopしたら出力は0になると思っていました。)
PWMの出力波形を見ているとそれまでのduty(時間間隔)を無視してLOW状態からHIGHに立ち上がっている事もあったためマイコンの暴走等を疑っていました。
Stop後にTOmレジスタの値を0にすることで問題は解決されましたが、PWM停止時の状態がいまいち分からないため上記について教えていただけたらと思います。
チョコです。
>Stopしたタイミングの状態が維持されるという解釈で良いでしょうか。
はい,そうです。端子には,タイマの出力レジスタ(TOm)のTOmnビットの状態が出力されます。動作中には,指定されたタイミングでHIGH/LOWが切り替わりますが,停止すると,その時の状態が保持されたままとなります。