Toggle输出模式是通过指定针来输出toggle信号的输出模式。
在Toggle输出模式可使用的命令如下。
命令 | 下级命令 | 说明 | |||
---|---|---|---|---|---|
set | mode | output | toggle | set mode: toggle | |
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] ... [T8] | set output timing parameters | |||
delay | [D] | set delay before output signal | |||
repc | [N] | set repeat count | |||
trigger | from | st# | set trigger target: st0 ~ st7 | ||
php | set trigger target: none | ||||
reset | - | reset | |||
get | state | get current state | |||
repc | get remaining repeat count | ||||
start | - | start | |||
stop | - | stop |
ST的输出设定具有如下项目。
下级命令 | 语法 |
---|---|
set output pin | pid_ioctl($pid, "set output dev uio0 0"); // pin 0 of uio0 |
open-drain | pid_ioctl($pid, "set output od"); |
push-pull | pid_ioctl($pid, "set output pp"); |
output HIGH | pid_ioctl($pid, "set output high"); |
output LOW | pid_ioctl($pid, "set output low"); |
invert output | pid_ioctl($pid, "set output invert 1"); // inverted output pid_ioctl($pid, "set output invert 0"); // normal output |
所有输出命令在实行命令的同时反映在输出针。
在此模式可在输出前定延时时间。延时时间设定的单位是依据"set div"命令的单位。 延时时间的设定方法如下。
区分 | 语法 |
---|---|
set delay | pid_ioctl($pid, "set delay D"); |
此模式下可设定输出信号的反复次数。可设定的N的范围是0~1000000000(10亿) 基本参数是0,0指最大反复次数10亿。
区分 | 语法 |
---|---|
set repc | pid_ioctl($pid, "set repc N"); |
计数值的设定为了调整输出时间使用。在Toggle输出模式中计数值可以设定最少一个至最多8个。 设定方法如下。
区分 | 语法 |
---|---|
set count | pid_ioctl($pid, "set count T1 T2 … T8"); |
在toggle模式中可计数的范围如下。
单位 | 可设定范围 (10㎲ ~ 30分钟) |
---|---|
microsecond | 10 ~ 1,800,000,000 |
millisecond | 1 ~ 1,800,000 |
second | 1 ~ 1,800 |
延时时间为D,只设定一个(T1)时的时间如下。
在toggle输出模式,将计数值设定2个以上时,此值在输出始点按顺序使用。如果反复次数比设定的计数值多时,重新自第一个值开始按顺序使用。 反复次数为4,延时时间为D时,设定3个值(T1, T2和T3)的情况时间如下。
将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"); |
ST的trigger设定基本参数是"php"(no target)。
"get repc"命令是确认ST的剩余输出次数的命令。
区分 | 语法 |
---|---|
get repc | pid_ioctl($pid, "get repc"); |
Toggle输出模式是逆转ST输出信号的模式。
$pid = pid_open("/mmap/st0"); // open ST 0
pid_ioctl($pid, "set div sec"); // set unit: second
pid_ioctl($pid, "set mode output toggle"); // set mode: toggle
pid_ioctl($pid, "set output dev uio0 0"); // set output device / pin: uio0 / 0
pid_ioctl($pid, "set repc 1"); // set repeat count: 1
pid_ioctl($pid, "set count 1"); // set count: T1 only
pid_ioctl($pid, "start"); // start ST
while(pid_ioctl($pid, "get state"));
pid_close($pid);
在toggle模式中"set count"是指ST的开始始点到发出toggle信号始点间的时间。实行上面例子时ST的输出结果如下。
$pid = pid_open("/mmap/st0"); // open ST 0
pid_ioctl($pid, "set div sec"); // set unit: second
pid_ioctl($pid, "set mode output toggle"); // set mode: toggle
pid_ioctl($pid, "set output dev uio0 0"); // set output device / pin: uio0 / 0
pid_ioctl($pid, "set repc 3"); // set repeat count: 3
pid_ioctl($pid, "set count 1 2 1"); // set count values: 1, 2 and 1
pid_ioctl($pid, "start"); // start ST
while(pid_ioctl($pid, "get state"));
pid_close($pid);
在上面例子中通过"set repc"命令将toggle输出次数设定为3,为了toggle输出时间通过"set count"将T1, T2和T3分别设定为1,2和1秒。 实行上面的例时ST的输出结果如下。