Режим захвата также определяет время запуска путем установки цели триггера.
Как и HT 0, пин-вход может быть целью триггера.
Trigger timing - это момент времени, когда HT запускает внутренний счетчик для захвата сигнала, поэтому возможно реализовать захват сигналов, даже если HT не запускается, но при этом все значения счетчика равны нулю.
В следующем примере показано, как установить цель триггера по отношению к нарастающему edge event и захватить 2 значения с falling edge.
$pid = pid_open("/mmap/ht0"); // open HT 0
pid_ioctl($pid, "set div us"); // set unit: microsecond
pid_ioctl($pid, "set mode capture fall"); // set mode: capture with falling edge
// set trigger target: pin event with rising edge
pid_ioctl($pid, "set trigger from pin rise");
pid_ioctl($pid, "set repc 2"); // set repeat count: 2
pid_ioctl($pid, "start"); // start HT 0
while(pid_ioctl($pid, "get state"))
;
for($i = 0; $i < 2; $i++)
echo "[$i]", pid_ioctl($pid, "get count $i"), "\r\n"; // read count values
pid_close($pid);
Если в приведенном выше примере идут 2 прямоугольные волны с периодом 20㎲ и скважностью (duty cycle) в 50%, то исходя из примера выше, значения счетчика индекса 0 и 1 будут выглядеть следующим образом:
Результат следующий:
[0]10
[1]20