PWM输出模式是可以无限反复的脉冲输出模式。因此除反复次数与数数设定之外所有使用方法与脉冲输出模式相同。
在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为输出模式时为了初始化开始始点而使用。此时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).
$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的输出结果如下。