Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
10 years ago.
PWM出力正しい実装になっている?
こんばんは、PWMのテストしています。
サンプルソース
#include "mbed.h" PwmOut led(LED1); int main() { led.period(4.0f); // 4 second period led.write(0.50f); // 50% duty cycle while(1); }
のようなソース書いてみました・
4秒点灯、4秒消灯の繰り返しを想定しています。
が,
PEACHだとつきっぱなしになるだけ、ST Nucleo F401REだと意図通り動きます。
Question relating to:
3 Answers
10 years ago.
遅くなりまして申し訳ありません。
ご指摘のあった、PWMのperiodを変更できない問題を修正致しました。
ただし、RZ/A1Hの仕様から、以下のソフト仕様となります。
- 設定可能なperiodの範囲は1us~491usです。(初期値 491us)
491usを超える値の場合、491usに丸められます。
- 以下の端子を同時にPWMに設定することはできません。どちらか一方のみPWMに設定することができます。
P4_6とP4_7
P8_8とP8_9
P8_10とP8_11
P8_12とP8_13
P8_14とP8_15
- PWMには2つのchannelがあります。periodを変更する際は該当するchannel全てのperiodが変更されます。
channel 1:P8_8、P8_9、P8_10、P8_11、P8_12、P8_13、P8_14、P8_15
channel 2:P10_0、P3_2、P4_4、P4_6、P4_7
ご自身のプロジェクトの mbed-src を右クリックして update を選択すると、変更が反映されます。
Eguchiさん
posted by Kenji Arai 01 Dec 2014私も確認しました。
ロジアナで確認したところ、490uSの周期で制御され、period()での変更ができない問題がありそうです。
周期が早いので50%ではLEDの明暗が目視ではわかりません。
led.write(0.999f)と変えてみてください。
暗くなったのがわかると思います。
Lチカ議論で指摘しましたが、負論理ですので、これでLED点灯時間が実測でLED_ON=6uS, OFF=486uS ->1.2%となり、目視でも連続点灯していないことがわかります。
正式回答を待ちましょう。