Toggle输出模式


Toggle输出模式是通过指定针来输出toggle信号的输出模式。

st_set_toggle 01

在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)时的时间如下。

st_set_toggle 02

st_set_toggle 03

在toggle输出模式,将计数值设定2个以上时,此值在输出始点按顺序使用。如果反复次数比设定的计数值多时,重新自第一个值开始按顺序使用。 反复次数为4,延时时间为D时,设定3个值(T1, T2和T3)的情况时间如下。

st_set_toggle 04

设定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");

ST的trigger设定基本参数是"php"(no target)。

读取剩余输出次数

"get repc"命令是确认ST的剩余输出次数的命令。

区分 语法
get repc pid_ioctl($pid, "get repc");

Toggle输出模式 使用 例

Toggle输出模式是逆转ST输出信号的模式。

使用toggle输出模式

$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的输出结果如下。

st_set_toggle 05

反复toggle输出模式

$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的输出结果如下。

st_set_toggle 06