私はPWM出力を駆動するためにウィンドウIoTコアを備えた雷ドライバを使用しています。 GPIOピンにスコープを接続し、PWMデューティ・サイクルを設定しました。私は無限ループでこれを行います。もし私がループに遅れを入れたら、出力信号はうまく見えます。しかし、私が遅れを落とすと、デューティサイクル(範囲で見られるように)が5~10%の間でちらつき始めます。以下のコードは、誰でもこれを説明できますか?ラズベリーパイ雷DMAのPWMフリッカー
var controllers = await PwmController.GetControllersAsync(LightningPwmProvider.GetPwmProvider());
var pwmController = controllers[1];
pwmController.SetDesiredFrequency(50);
var motor1 = pwmController.OpenPin(5);
motor1.Start();
do
{
motor1.SetActiveDutyCyclePercentage(0.05);
Task.Delay(1000).Wait();
} while (true);
これは合理的な提案のように思えます。残念なことに、それが本当であれば、DMAのpwmは私にとってかなり役に立たなくなります。うまくいけば、これは単なるバグであり、次のリリースで修正される予定です。 – Slicc
RP2のpwmドライバコードをチェックすると役立つでしょうか? https://github.com/ms-iot/bsp/tree/master/drivers/pwm/bcm2836 – Jackie
なぜPWMデューティサイクルを急激に変えなければならないのですか(間違った提案ではなく、私は興味があります)。 – Haukman