PWM输出模式是反复次数为无限的脉冲输出模式。因此反复次数与计数设定之外所有使用方法与脉冲输出模式相同。在PWM输出模式可使用的命令如下。
命令 | 下级命令 | 说明 | |||
---|---|---|---|---|---|
set | mode | output | pwm | set mode: pwm | |
div | ms | set unit: millisecond | |||
us | set unit: microsecond | ||||
output | od | open-drain | |||
pp | push-pull | ||||
low | output LOW | ||||
high | output HIGH | ||||
invert | 0 | not invert output | |||
1 | invert output | ||||
count | [T1] [T2] | set output timing parameters | |||
trigger | from | ht0 | set trigger target: ht0 | ||
php | set trigger target: none | ||||
reset | - | reset | |||
get | state | get current state | |||
div | get division rate | ||||
start | - | start | |||
stop | - | stop |
计数值设定为了调整输出时间来设定。在PWM输出模式下需要两个计数值设定。计数值设定方法如下。
命令 | 语法 |
---|---|
set count | pid_ioctl($pid, "set count T1 T2"); |
在PWM输出模式下可设定的计数值范围如下。
区分 | 可设定参数值 |
---|---|
T1 | 0 ~ 32764 |
T2 | 0 ~ 32764 |
T1 + T2 | 1 ~ 32764 |
在PWM输出模式下T1与T2的时间如下。
$pid = pid_open("/mmap/ht0"); // open HT 0
pid_ioctl($pid, "set div us"); // set unit: microsecond
pid_ioctl($pid, "set mode output pwm"); // set mode: PWM mode
pid_ioctl($pid, "set count 1 1"); // set count values: 1, 1
pid_ioctl($pid, "start"); // start HT
usleep(50);
pid_ioctl($pid, "stop"); // stop HT
pid_close($pid);
在实行上面例子时HT的输出结果如下。