7 years, 6 months ago.

PwmOutの周期について FRDM-K64

PwmOutの設定について教えてください。 FRDM-K64Fを使って、クラシックCompilerです。

エンコーダ出力付きのDCモータを駆動します。 クラスリファレンスでは、pulsewidth()の説明に、「keeping same period」とあるので、period一定でパルス幅を設定すると理解しています。 PwmOut mot_enb(); mot_enb.period_us(100); 区間を100us=10KHzに設定

モータからのエンコーダ出力を割り込みで入れて、エンコーダパルスを時間計測(Timerクラスを使用)します。 パルス時間に応じてPwmOutのオン時間(pulsewidth)を変えようと思いますが、うまくいきません。 周期一定でパルス時間は変わっているのですが、pulsewidthを設定した瞬間だけ周期が変わってしまいます。 /media/uploads/king33jp/ds0028.png

添付の絵はオシロ波形ですが、水色がPWM出力、黄色がモータからのエンコーダ入力です。 エンコーダの立下りエッジ2回に1回pulsewidthを設定しています。 pulsewidthを設定した瞬間、その時間が加算され、周期がくるってしまいます。

これは仕様なんでしょうか。

Be the first to answer this question.