cmmCmpQue_Enque


SYNOPSIS

VT_I4 cmmCmpQue_Enque(
    [in] VT_I4 Axis, [in] VT_I4 CmpSrc,
    [in] VT_I4 CmpMethod, [in] VT_I4 CmpData
    )

DESCRIPTION

  • cmmCmpQue_Enque() 함수는 예약 큐에 위치비교 조건 및 비교데이터를 등록합니다. 여기에 등록된 위치비교 데이터는 최초의 데이터부터 순차적으로 비교됩니다.

PARAMETER

  • Axis: 축번호. 축번호는 상수값으로 [cmX1] 부터 0 번째 축을 기준 축으로 임의의 축을 설정할 수 있습니다.

  • CmpSrc : cmmCmpQue_Enque 함수의 인자이며, 비교 대상 카운터를 설정합니다.

Value

Meaning

0 또는 cmCNT_COMM

Command Counter

1 또는 cmCNT_FEED

Feedback Counter

2 또는 cmCNT_DEV

Deviation Counter : Command 와 Feedback counter 의 편차 카운터

3 또는 cmCNT_GEN

General Counter : 사용자의 정의에 따라 여러가지 용도로 사용될 수 있는 카운터

  • CmpMethod : cmmCmpQue_Enque 함수의 인자이며, CMP 신호 출력 조건을 설정합니다. 즉, 비교 대상 카운트값과 사용자가 지정한 데이터 값을 어떻게 비교하여 CMP 신호 출력을 발생할지에 대한 조건을 결정합니다.

Value

Meaning

0 (cmDISABLE)

Disable comparator

1 (cmEQ_BIDIR)

CmpData = CmpSrc_Value (regardless of counting direction)

2 (cmEQ_PDIR)

CmpData = CmpSrc_Value (while counting up)

3 (cmEQ_NDIR)

CmpData = CmpSrc_Value (while counting down)

4 (cmLESS)

CmpData > CmpSrc_Value

5 (cmGREATER)

CmpData < CmpSrc_Value

  • CmpData: cmmCmpQue_Enque 함수의 인자이며, CMP 신호 출력 위치를 설정합니다.

RETURN VALUE

Value

Meaning

음수

수행 실패

cmERR_NONE

수행 성공

EXAMPLE

  • 아래의 예제에서는 X 축에 대하여 CMP 큐의 크기 만큼 반복하면서 매 1000pulse 위치마다 비교지점을 설정하는 것입니다. 이 때 비교되는 카운터는 Command Counter 가 되며, 증가하는 방향(cmEQ_PDIR)으로 정확히 일치하는 경우에만 CMP 가 출력되도록 지정하였습니다.

1
2
3
4
5
6
7
C/C++

int i = 0;

for(i = 0; i < DEFAULT_QUE_SIZE; i++) {
   cmmCmpQue_Enque( cmX1, cmCNT_COMM, cmEQ_PDIR, 1000 * i );
}