Trigger


在希望将ST的输出点与另一个ST同步时使用。下面例子是将ST1的输出点与ST0同步的例子。

使用trigger例

$pid0 = pid_open("/mmap/st0");              // open ST 0
pid_ioctl($pid0, "set div sec");            // set unit: second
pid_ioctl($pid0, "set mode output pulse");  // set mode: pulse
pid_ioctl($pid0, "set count 1 1");          // set count values: 1 and 1
pid_ioctl($pid0, "set repc 2");             // set repeat count: 2
pid_ioctl($pid0, "set output dev uio0 0");  // set output dev / pin: uio0 / 0

$pid1 = pid_open("/mmap/st1");              // open ST 1
pid_ioctl($pid1, "set div sec");            // set unit: second
pid_ioctl($pid1, "set mode output pulse");  // set mode: pulse
pid_ioctl($pid1, "set trigger from st0");   // set trigger target: st0
pid_ioctl($pid1, "set count 1 1");          // set count values: 1 and 1
pid_ioctl($pid1, "set repc 2");             // set repeat count: 2
pid_ioctl($pid1, "set output dev uio0 1");  // set output dev / pin: uio0 / 1

pid_ioctl($pid1, "start");                  // start ST 1
pid_ioctl($pid0, "start");                  // start ST 0

while(pid_ioctl($pid1, "get state"));
pid_close($pid0);
pid_close($pid1);

就如在例子中所见,将要将输出同步的ST要比成为trigger对象的ST要先启动。

输出如下。

st_set_trigger_01

ST的trigger误差

ST存在trigger误差。ST的trigger误差范围如下。

区分 误差范围
Simultaneously use 2 STs approximately 1㎲
Simultaneously use 8 STs approximately 4㎲

※ 需要更高的准确度时,请使用HT。