PWM输出模式


PWM输出模式是可以无限反复的脉冲输出模式。因此除反复次数与数数设定之外所有使用方法与脉冲输出模式相同。

st_set_pwm 01

在PWM输出模式下可使用的命令如下。

命令 下级命令 说明
set mode output pwm set mode: PWM
div sec set unit: second
ms set unit: millisecond
us set unit: microsecond
output od open-drain
pp push-pull
low output LOW
high output HIGH
dev uio0 #pin set output device and pin
invert 0 not invert output
1 invert output
count [T1] [T2] set output timing parameters
delay [D] set delay
trigger from st# set trigger target: st0 ~ st7
php set trigger target: none
reset - reset
get state get current state
start - start
stop - stop

计数设置

为了调整输出时间设定计数值。 PWM输出模式中需要两个计数值设定。 计数值设定方法如下。

区分 语法
set count pid_ioctl($pid, "set count T1 T2");

在PWM输出模式中可设定的计数值范围如下。

单位 可谁设定范围 (0 ~ 30分钟)
microsecond 0, 10 ~ 1,800,000,000
millisecond 0 ~ 1,800,000
second 0 ~ 1,800

在PWM输出模式中延时时间为D时,T1 和 T2的时间如下。这里的D代表延时时间。

st_set_pwm 02

Trigger设定

此命令是用于ST为输出模式时为了初始化开始始点而使用。此时ST的开始始点与Trigger对象同步,Trigger对象支持其他ST设定。 ST的Trigger设定方法如下。

区分 语法
ST(st0/1…) pid_ioctl($pid, "set trigger from st0");
php pid_ioctl($pid, "set trigger from php");

Default value of trigger target is "php"(no target).

PWM输出模式 使用 例

PWM输出模式 使用 例

$pid = pid_open("/mmap/st0");              // open ST 0
pid_ioctl($pid, "set div sec");            // set unit: second
pid_ioctl($pid, "set mode output pwm");    // set mode: PWM
pid_ioctl($pid, "set output dev uio0 0");  // set output dev / pin: uio0 / 0
pid_ioctl($pid, "set count 1 1");          // set count values: 1 and 1
pid_ioctl($pid, "start");                  // start ST
sleep(10);
pid_ioctl($pid, "stop");                   // stop ST
pid_close($pid);

实行上面例子时ST的输出结果如下。

st_set_pwm 03