트리거


트리거 명령은 ST의 출력 시점을 또 다른 ST와 동기화시키고자 할 때 사용합니다. 아래 예제는 ST1의 출력 시점을 ST0와 동기화시키는 예 입니다.

트리거 사용 예

<?php
$pid0 = pid_open("/mmap/st0");              // 0번 ST 열기
pid_ioctl($pid0, "set div sec");            // 단위 설정: 초
pid_ioctl($pid0, "set mode output pulse");  // 펄스출력모드 설정
pid_ioctl($pid0, "set count 1 1");          // 카운트 값 설정: 1, 1
pid_ioctl($pid0, "set repc 2");             // 출력 횟수 설정: 2
pid_ioctl($pid0, "set output dev uio0 0");  // 출력 핀 설정: uio0의 0번

$pid1 = pid_open("/mmap/st1");              // 1번 ST 열기
pid_ioctl($pid1, "set div sec");            // 단위 설정: 초
pid_ioctl($pid1, "set mode output pulse");  // 펄스출력모드 설정
pid_ioctl($pid1, "set trigger from st0");   // 트리거 대상 ST 지정: st0
pid_ioctl($pid1, "set count 1 1");          // 카운트 값 설정: 1, 1
pid_ioctl($pid1, "set repc 1");             // 출력 횟수 설정: 1
pid_ioctl($pid1, "set output dev uio0 1");  // 출력 핀 설정: uio0의 1번

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

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

위 예제에서 보는 바와 같이, 출력을 동기화시킬 ST는 트리거의 대상이 되는 ST보다 반드시 먼저 가동되어야 합니다.

출력 파형은 다음과 같습니다.

st_set_trigger_01

ST의 트리거 오차

ST는 트리거 오차가 존재합니다. ST의 트리거 오차 범위는 다음과 같습니다.

구분 오차 범위
2개의 타이머 사용 시 약 1㎲
8개의 타이머 사용 시 약 4㎲

※ 더 높은 정확도가 필요한 경우 HT를 사용하십시오.