3

我的目标是用 Java 编写一个 GUI,用户可以使用它通过 Raspberry 3 的硬件 PWM 引脚之一输出 PWM 信号。这样做,用户应该能够选择整个脉冲的长度(在ms)、占空比的长度(以 ms 为单位)以及脉冲重复的频率。

为了编写代码,我使用了基于 WiringPi 的 Pi4J 库 ( http://pi4j.com )。在尝试实际创建 PWM 信号时,我注意到有三个主要功能:

pwmSetRange(int x) pwmSetClock(int x) Setpwm(int x)

据我正确理解这些函数,setRange 基本上设置了占空比的可能单步,而 setclock 设置了频率的除数,而 setpwm 设置了占空比。

但是如何根据用户输入正确配置这些方法呢?

还有我注意到的:参考我读过的一篇文章,PWM 频率使用以下公式计算:频率 = 19.2e6 Hz / pwmClock / pwmRange 而时钟值最高为 4095,范围最高为 4096。我是否正确理解,使用 Pi 的硬件 PWM,只有大约 1.2Hz 到 1920Hz 的频率是可能的?

4

0 回答 0