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.
9 years ago.
LPC824のPwmOut関数のパルス幅指定時の挙動について
mbed初心者ですが、PwmOut関数の挙動についてよろしくお願いします。
現在4つのPWMを使うテストをしています。プログラムは以下の通りです。
4chとも周波数は問題無く設定どおりで動作しています。 スイッチマトリクスもちゃんと設定どおりのポートに出来ています。
パルス幅の挙動がおかしいのですが、 pwm14とも、パルス幅の引数が0で完全にLowにならずに1usのパルスが出力されっぱなしで、 pwm1のみ引数が1000で完全にHighを出力し、 pwm24は引数が1000で完全にLowを出力します。
PWM14とも、パルス幅の引数が1999では正常にパルス幅が可変します。 pwm24は、試しに引数を1001にしたら完全にHighを出力しました。
以上、解決方法のご教授をよろしくお願い致します。
- include "mbed.h"
PwmOut pwm1(P0_27); PwmOut pwm2(P0_26); PwmOut pwm3(P0_25); PwmOut pwm4(P0_24); 4ko made
int main() { pwm1.period_us(1000); pwm2.period_us(1000); pwm3.period_us(1000); pwm4.period_us(1000);
pwm1.pulsewidth_us(0); pwm2.pulsewidth_us(500); pwm3.pulsewidth_us(1000); pwm4.pulsewidth_us(1000);
while(1) { myled1 = 1; myled2 = 1; myled3 = 1; wait(0.5); myled1 = 0; myled2 = 0; myled3 = 0; wait(0.5); } }
Question relating to:
1 Answer
8 years, 8 months ago.
こんにちは。ご連絡頂いた現象は、LPC824のSDK側の不具合でした。 修正したコードの pull request を出しましたので、問題なければ次回のライブラリアップデート時に反映されると思います。
https://github.com/mbedmicro/mbed/pull/1585/