Триггер с режимом захвата (Capture mode)


Режим захвата также определяет время запуска путем установки цели триггера. Как и 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 будут выглядеть следующим образом:

ht_set_triggercap

Результат следующий:

[0]10
[1]20