Skip to content

인터럽트

인터럽트 설정 및 확인

Function Description
AxdiInterruptSetModule 지정 모듈의 인터럽트 메시지를 받아오기 위하여 윈도우 메시지,
콜백함수 또는 이벤트 방식을 사용한다.
AxdiInterruptSetModuleEnable 지정한 모듈의 인터럽트 사용 유무를 설정한다.
AxdiInterruptGetModuleEnable 지정한 모듈의 인터럽트 사용 유무를 확인한다.
AxdiInterruptRead 인터럽트 발생 위치를 확인한다.

인터럽트 상승 / 하강 에지 설정 및 확인

Function Description
AxdiInterruptEdgeSet 전체 입력 접점 모듈, Interrupt Rising / Falling Edge Register의
Offset 위치에서 bit 단위로 상승 또는 하강 에지 값을 설정한다.
AxdiInterruptEdgeGet 전체 입력 접점 모듈, Interrupt Rising / Falling Edge Register의
Offset 위치에서 bit 단위로 상승 또는 하강 에지 값을 확인한다.
AxdiInterruptEdgeSetBit 지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register의
Offset 위치에서 bit 단위로 상승 또는 하강 에지 값을 설정한다.
AxdiInterruptEdgeGetBit 지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register의
Offset 위치에서 bit 단위로 상승 또는 하강 에지 값을 확인한다.
AxdiInterruptEdgeSetByte 지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register의
Offset 위치에서 byte 단위로 상승 또는 하강 에지 값을 설정한다.
AxdiInterruptEdgeGetByte 지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register의
Offset 위치에서 Byte 단위로 상승 또는 하강 에지 값을 확인한다.
AxdiInterruptEdgeSetWord 지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register의
Offset 위치에서 word 단위로 상승 또는 하강 에지 값을 설정한다.
AxdiInterruptEdgeGetWord 지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register의
Offset 위치에서 word 단위로 상승 또는 하강 에지 값을 확인한다.
AxdiInterruptEdgeSetDword 지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register의
Offset 위치에서 double word 단위로 상승 또는 하강 에지 값을 설정한다.
AxdiInterruptEdgeGetDword 지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register의
Offset 위치에서 double word 단위로 상승 또는 하강 에지 값을 확인한다.

AxdiInterruptSetModule

Purpose

지정한 모듈의 인터럽트 메시지를 받아오기 위하여 윈도우 메시지, 콜백함수 또는 이벤트 방식을 사용한다.

Format

C++
DWORD AxdiInterruptSetModule(long lModuleNo, HWND hWnd, DWORD uMessage, AXT_INTERRUPT_PROC pProc, HANDLE *pEvent);
C#
uint AxdiInterruptSetModule(int lModuleNo, IntPtr hWnd, uint uMessage, CAXHS.AXT_INTERRUPT_PROC pProc, ref uint pEvent);

Parameters

[in/out] Name [Init Value] Explanation
[in]lModuleNo 입력 모듈 번호 (0 ~ N-1)
[in]hWnd 윈도우 핸들. 윈도우 메시지를 받을 때 사용. 사용하지 않으면 NULL
[in]uMessage 윈도우 메시지. 사용하지 않거나 디폴트 값을 사용하려면 0
[in]pProc 콜백함수의 포인터. 사용하지 않으면 NULL
[out]pEvent 이벤트 ID. 사용하지 않으면 NULL

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호

Description

인터럽트는 모듈 단위로 받을 수 있다. 인터럽트 메시지를 받아오기 위해서는 윈도우 핸들을 넘기고 콜백함수를 사용할 때는 함수 포인터를 넘겨준다. 이벤트 방식을 사용할 때는 이벤트 ID 를 가져와서 인터럽트를 받는다.

예제 코드

// 0번 모듈의 인터럽트 메시지를 받아오기 위하여 윈도우 메시지 사용
// Header file에 추가
afx_msg LRESULT OnInterruptMessage (WPARAM wParam, LPARAM lParam) ;

BEGIN_MESSAGE_MAP(CDIODlg, CDialog)
    //{{AFX_MSG_MAP
    // 선언
    ON_MESSAGE(WM_AXL_INTERRUPT, OnInterruptMessage)
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

// 인터럽트 발생 시 ‘OnInterruptMessage()’ 호출 됨
AxdiInterruptSetModule(0, m_hWnd, WM_AXL_INTERRUPT, NULL, NULL);

AxdiInterruptSetModuleEnable

Purpose

지정한 모듈의 인터럽트 사용 유무를 설정한다.

Format

C++
DWORD AxdiInterruptSetModuleEnable(long lpModuleNo, DWORD uUse);
C#
uint AxdiInterruptSetModuleEnable(int lpModuleNo, uint uUse);

Parameters

[in/out] Name [Init Value] Explanation
[in]lpModuleNo 입력 모듈 번호 (0 ~ N-1)
[in]uUse 인터럽트 사용 여부: AXT_USE
- [00h] 인터럽트 사용 해제
- [01h] 인터럽트 사용 설정

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호

Description

사용자가 지정한 모듈의 인터럽트 사용 유무를 설정한다.

예제 코드

// 0번째 모듈의 인터럽트를 사용 가능하게 설정한다.
AxdiInterruptSetModuleEnable(0, ENABLE);

AxdiInterruptGetModuleEnable

Purpose

지정한 모듈의 인터럽트 사용 유무를 확인한다.

Format

C++
DWORD AxdiInterruptGetModuleEnable(long lpModuleNo, DWORD *upUse);
C#
uint AxdiInterruptGetModuleEnable(int lpModuleNo, ref uint upUse);

Parameters

[in/out] Name [Init Value] Explanation
[in]lpModuleNo 입력 모듈 번호 (0 ~ N-1)
[out]upUse 인터럽트 사용 여부: AXT_USE
- [00h] 인터럽트 사용 해제
- [01h] 인터럽트 사용 설정

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호

Description

사용자가 지정한 모듈의 인터럽트 사용 유무를 확인한다.

예제 코드

// 0번 입력 모듈의 인터럽트 사용 가능 여부를 확인한다.
DWORD uUse;
AxdiInterruptGetModuleEnable(0, &uUse);

if (uUse)
{
    AfxMessageBox(0 모듈은 인터럽트 사용이 가능합니다.);
}
else
{
    AfxMessageBox(0 모듈은 인터럽트 사용이 불가능합니다.);
}

AxdiInterruptRead

Purpose

인터럽트 발생 위치를 확인한다.

Format

C++
DWORD AxdiInterruptRead(long *lpModuleNo, DWORD *upFlag);
C#
uint AxdiInterruptRead(ref int lpModuleNo, ref uint upFlag);

Parameters

[in/out] Name [Init Value] Explanation
[in]lpModuleNo 모듈 번호
[out]upFlag 인터럽트 발생 위치

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3052] AXT_RT_DIO_NOT_INTERRUPT: DIO 인터럽트 설정 안 됨

Description

이벤트 방식의 인터럽트를 사용할 경우 인터럽트 발생 위치를 확인한다.

예제 코드

// 0번째 모듈의 인터럽트 발생 위치를 확인한다.
DWORD uFlag;
AxdiInterruptRead(0, &uFlag);

AxdiInterruptEdgeSet

Purpose

전체 입력 접점 모듈, Interrupt Rising / Falling Edge Register 의 Offset 위치에서 bit 단위로 상승 또는 하강 에지 값을 설정한다.

Format

C++
DWORD AxdiInterruptEdgeSet(long lOffset, DWORD uMode, DWORD uValue);
C#
uint AxdiInterruptEdgeSet(int lOffset, uint uMode, uint uValue);

Parameters

[in/out] Name [Init Value] Explanation
[in]lOffset 입력 접점에 대한 Offset 위치
[in]uMode 인터럽트 발생에지 설정: AXT_DIO_EDGE
- [00h] 하강 에지
- [01h] 상승 에지
[in]uValue 인터럽트 발생 설정 여부 ( Boolean )

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3102] AXT_RT_DIO_INVALID_OFFSET_NO : 유효하지 않은 DIO OFFSET 번호
[3104] AXT_RT_DIO_INVALID_MODE : 유효하지 않은 Edge 를 설정했을 때

Description

전체 입력 접점 모듈, Interrupt Rising / Falling Edge Register 의 Offset 위치에서 bit 단위로 상승 또는 하강 에지 값을 설정한다. Offset 은 ‘0’부터 총 입력 ‘접점 수 – 1’까지 사용할 수 있다.

예제 코드

// 전체 입력 접점 모듈, Interrupt Rising Edge Register의 Offset 위치에서 bit 단위로 상승 에지 값을 설정한다.
AxdiInterruptEdgeSet(0, UP_EDGE, 1);

AxdiInterruptEdgeGet

Purpose

전체 입력 접점 모듈, Interrupt Rising / Falling Edge Register 의 Offset 위치에서 bit 단위로 상승 또는 하강 에지 값을 확인한다.

Format

C++
DWORD AxdiInterruptEdgeGet(long lOffset, DWORD uMode, DWORD *upValue);
C#
uint AxdiInterruptEdgeGet(int lOffset, uint uMode, ref uint upValue);

Parameters

[in/out] Name [Init Value] Explanation
[in]lOffset 입력 접점에 대한 Offset 위치
[in]uMode 인터럽트 발생 에지 설정: AXT_DIO_EDGE
- [00h] 하강 에지
- [01h] 상승 에지
[out]upValue 인터럽트 발생 설정 여부 ( Boolean )

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3102] AXT_RT_DIO_INVALID_OFFSET_NO : 유효하지 않은 DIO OFFSET 번호
[3104] AXT_RT_DIO_INVALID_MODE : 유효하지 않은 Edge 를 설정했을 때

Description

전체 입력 접점 모듈, Interrupt Rising / Falling Edge Register 의 Offset 위치에서 bit 단위로 상승 또는 하강 에지 값을 확인한다. Offset 은 ‘0’부터 총 입력 접점 수 – 1 까지 사용할 수 있다.

예제 코드

// 전체 입력 접점 모듈, Interrupt Rising Edge Register의 Offset 위치에서 bit 단위로 상승 에지 설정 값을 읽는다.
DWORD uEdge;

AxdiInterruptEdgeGet(0, UP_EDGE, &uEdge);

AxdiInterruptEdgeSetBit

Purpose

지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register 의 Offset 위치에서 bit 단위로 상승 또는 하강 에지 값을 설정한다.

Format

C++
DWORD AxdiInterruptEdgeSetBit(long lModuleNo, long lOffset, DWORD uMode, DWORD uValue);
C#
uint AxdiInterruptEdgeSetBit(int lModuleNo, int lOffset, uint uMode, uint uValue);

Parameters

[in/out] Name [Init Value] Explanation
[in]lModuleNo 모듈 번호
[in]lOffset 입력 접점에 대한 Offset 위치
[in]uMode 인터럽트 발생 에지 설정: AXT_DIO_EDGE
- [00h] 하강 에지
- [01h] 상승 에지
[in]uValue 인터럽트 발생 설정 여부 (Boolean)

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공 [3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음 [3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호 [3104] AXT_RT_DIO_INVALID_MODE : 유효하지 않은 Edge 를 설정했을 때

Description

사용자가 지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register 의 Offset 위치에서 bit 단위로 레지스터 값을 설정한다. 지정한 모듈이 어떤 모듈인지 확인하여 아래의 Table 을 참조 하여 Offset 을 정한다.

Offset 범위와 Value 값

Module Offset Value
SIO-DI32 0 ~ 31 0(Off ), 1(On)
SIO-DB32x 0 ~ 15 0(Off ), 1(On)

예제 코드

// 0번째 입력 접점 모듈, Interrupt Rising Edge Register의 Offset 위치에서 bit 단위로 상승 에지 값을 설정한다.
AxdiInterruptEdgeSetBit(0, 0, UP_EDGE, 1);

AxdiInterruptEdgeGetBit

Purpose

지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register 의 Offset 위치에서 bit 단위로 상승 또는 하강 에지 값을 확인한다.

Format

C++
DWORD AxdiInterruptEdgeGetBit(long lModuleNo, long lOffset, DWORD uMode, DWORD *upValue);
C#
uint AxdiInterruptEdgeGetBit(int lModuleNo, int lOffset, uint uMode, ref uint upValue);

Parameters

[in/out] Name [Init Value] Explanation
[in]lModuleNo 모듈 번호
[in]lOffset 입력 접점에 대한 Offset 위치
[in]uMode 인터럽트 발생 에지 설정: AXT_DIO_EDGE
- [00h] 하강 에지
- [01h] 상승 에지
[out]upValue 인터럽트 발생 설정 여부 (Bit)

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호
[3104] AXT_RT_DIO_INVALID_MODE : 유효하지 않은 Edge 를 설정했을 때

Description

사용자가 지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register 의 Offset 위치에서 bit 단위로 상승 또는 하강 에지 값을 확인한다. 지정한 모듈이 어떤 모듈인지 확인하여 아래의 Table 에서 Offset 사용 범위를 참조하여 확인한다.

Offset 범위와 Value 값

Module Offset Value
SIO-DI32 0 ~ 31 0(Off ), 1(On)
SIO-DB32x 0 ~ 15 0(Off ), 1(On)

예제 코드

// 0번째 입력 접점 모듈, Interrupt Rising Edge Register의 Offset 위치에서 bit 단위로 상승 에지 설정 값을 읽는다.
DWORD uEdge;

AxdiInterruptEdgeGetBit(0, 0, UP_EDGE, &uEdge);

AxdiInterruptEdgeSetByte

Purpose

지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register 의 Offset 위치에서 byte 단위로 상승 또는 하강 에지 값을 설정한다.

Format

C++
DWORD AxdiInterruptEdgeSetByte(long lModuleNo, long lOffset, DWORD uMode, DWORD uValue);
C#
uint AxdiInterruptEdgeSetByte(int lModuleNo, int lOffset, uint uMode, uint uValue);

Parameters

[in/out] Name [Init Value] Explanation
[in]lModuleNo 모듈 번호
[in]lOffset 입력 접점에 대한 Offset 위치
[in]uMode 인터럽트 발생 에지 설정: AXT_DIO_EDGE
- [00h] 하강 에지
- [01h] 상승 에지
[in]uValue 인터럽트 발생 설정 여부 ( Byte )

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호
[3104] AXT_RT_DIO_INVALID_MODE : 유효하지 않은 Edge 를 설정했을 때

Description

사용자가 지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register 의 Offset 위치에서 byte 단위로 상승 또는 하강 에지 값을 설정한다. 지정한 모듈이 어떤 모듈인지 확인하여 아래의 Table 에서 Offset 사용 범위를 참조하여 설정한다.

Offset 범위와 Value 값

Module Offset Value
SIO-DI32 0, 1, 2, 3 00h ~ FFh
SIO-DB32x 0, 1 00h ~ FFh

예제 코드

// 0번째 입력 접점 모듈, Interrupt Rising Edge Register의 Offset 위치에서 byte 단위로 상승 에지 값을 설정한다.
AxdiInterruptEdgeSetByte(0, 0, UP_EDGE, 0xFF);

AxdiInterruptEdgeGetByte

Purpose

지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register 의 Offset 위치에서 byte 단위로 상승 또는 하강 에지 값을 확인한다.

Format

C++
DWORD AxdiInterruptEdgeGetByte(long lModuleNo, long lOffset, DWORD uMode, DWORD *upValue);
C#
uint AxdiInterruptEdgeGetByte(int lModuleNo, int lOffset, uint uMode, ref uint upValue);

Parameters

[in/out] Name [Init Value] Explanation
[in]lModuleNo 모듈 번호
[in]lOffset 입력 접점에 대한 Offset 위치
[in]uMode 인터럽트 발생 에지 설정: AXT_DIO_EDGE
- [00h] 하강 에지
- [01h] 상승 에지
[out]upValue 인터럽트 발생 설정 여부 (Byte)

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호
[3104] AXT_RT_DIO_INVALID_MODE : 유효하지 않은 Edge 를 설정했을 때

Description

사용자가 지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register 의 Offset 위치에서 byte 단위로 상승 또는 하강 에지 값을 확인한다. 지정한 모듈이 어떤 모듈인지 확인하여 아래의 Table 에서 Offset 사용 범위를 참조하여 확인한다.

Offset 범위와 Value 값

Module Offset Value
SIO-DI32 0, 1, 2, 3 00h ~ FFh
SIO-DB32x 0, 1 00h ~ FFh

예제 코드

// 0번째 입력 접점 모듈, Interrupt Rising Edge Register의 Offset 위치에서 byte 단위로 상승 에지 설정 값을 읽는다.
DWORD uEdge;

AxdiInterruptEdgeGetByte(0, 0, UP_EDGE, &uEdge);

AxdiInterruptEdgeSetWord

Purpose

지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register 의 Offset 위치에서 word 단위로 상승 또는 하강 에지 값을 설정한다.

Format

C++
DWORD AxdiInterruptEdgeSetWord(long lModuleNo, long lOffset, DWORD uMode, DWORD uValue);
C#
uint AxdiInterruptEdgeSetWord(int lModuleNo, int lOffset, uint uMode, uint uValue);

Parameters

[in/out] Name [Init Value] Explanation
[in]lModuleNo 모듈 번호
[in]lOffset 입력 접점에 대한 Offset 위치
[in]uMode 인터럽트 발생 에지 설정: AXT_DIO_EDGE
- [00h] 하강 에지
- [01h] 상승 에지
[in]uValue 인터럽트 발생 설정 여부 (Word)

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호
[3104] AXT_RT_DIO_INVALID_MODE : 유효하지 않은 Edge 를 설정했을 때

Description

사용자가 지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register 의 Offset 위치에서 word 단위로 상승 또는 하강 에지 값을 설정한다. 지정한 모듈이 어떤 모듈인지 확인하여 아래의 Table 에서 Offset 사용 범위를 참조하여 설정한다.

Offset 범위와 Value 값

Module Offset Value
SIO-DI32 0, 1 0000h ~ FFFFh
SIO-DB32x 0 0000h ~ FFFFh

예제 코드

// 0번째 입력 접점 모듈, Interrupt Rising Edge Register의 Offset 위치에서 word 단위로 상승 에지 값을 설정한다.
AxdiInterruptEdgeSetWord(0, 0, UP_EDGE, 0xFFFF);

AxdiInterruptEdgeGetWord

Purpose

지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register 의 Offset 위치에서 word 단위로 상승 또는 하강 에지 값을 확인한다.

Format

C++
DWORD AxdiInterruptEdgeGetWord(long lModuleNo, long lOffset, DWORD uMode, DWORD *upValue);
C#
uint AxdiInterruptEdgeGetWord(int lModuleNo, int lOffset, uint uMode, ref uint upValue);

Parameters

[in/out] Name [Init Value] Explanation
[in]lModuleNo 모듈 번호
[in]lOffset 입력 접점에 대한 Offset 위치
[in]uMode 인터럽트 발생 에지 설정: AXT_DIO_EDGE
- [00h] 하강 에지
- [01h] 상승 에지
[out]upValue 인터럽트 발생 설정 여부 (Word)

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호
[3104] AXT_RT_DIO_INVALID_MODE : 유효하지 않은 Edge 를 설정했을 때

Description

사용자가 지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register 의 Offset 위치에서 word 단위로 상승 또는 하강 에지 값을 확인한다. 지정한 모듈이 어떤 모듈인지 확인하여 아래의 Table 에서 Offset 사용 범위를 참조하여 확인한다.

Offset 범위와 Value 값

Module Offset Value
SIO-DI32 0, 1 0000h ~ FFFFh
SIO-DB32x 0 0000h ~ FFFFh

예제 코드

// 0번째 입력 접점 모듈, Interrupt Rising Edge Register의 Offset 위치에서 word 단위로 상승 에지 설정 값을 읽는다.
DWORD uEdge;

AxdiInterruptEdgeGetWord(0, 0, UP_EDGE, &uEdge);

AxdiInterruptEdgeSetDword

Purpose

지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register 의 Offset 위치에서 double word 단위로 상승 또는 하강 에지 값을 설정한다.

Format

C++
DWORD AxdiInterruptEdgeSetDword(long lModuleNo, long lOffset, DWORD uMode, DWORD uValue);
C#
uint AxdiInterruptEdgeSetDWord(int lModuleNo, int lOffset, uint uMode, uint uValue);

Parameters

[in/out] Name [Init Value] Explanation
[in]lModuleNo 모듈 번호
[in]lOffset 입력 접점에 대한 Offset 위치
[in]uMode 인터럽트 발생 에지 설정: AXT_DIO_EDGE
- [00h] 하강 에지
- [01h] 상승 에지
[in]uValue 인터럽트 발생 설정 여부 (Double Word)

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호
[3104] AXT_RT_DIO_INVALID_MODE : 유효하지 않은 Edge 를 설정했을 때

Description

사용자가 지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register 의 Offset 위치에서 double word 단위로 상승 또는 하강 에지 값을 설정한다. 지정한 모듈이 어떤 모듈인지 확인하여 아래의 Table 에서 Offset 사용 범위를 참조하여 설정한다.

Offset 범위와 Value 값

Module Offset Value
SIO-DI32 0 00000000h ~ FFFFFFFFh
SIO-DB32x 0 00000000h ~ FFFFFFFFh

예제 코드

// 0번째 입력 접점 모듈, Interrupt Rising Edge Register의 Offset 위치에서 double word 단위로 상승 에지 값을 설정한다.
AxdiInterruptEdgeSetDword(0, 0, UP_EDGE, 0xFFFFFFFF);

AxdiInterruptEdgeGetDword

Purpose

지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register 의 Offset 위치에서 double word 단위로 상승 또는 하강 에지 값을 확인한다.

Format

C++
DWORD AxdiInterruptEdgeGetDword(long lModuleNo, long lOffset, DWORD uMode, DWORD *upValue);
C#
uint AxdiInterruptEdgeGetDword(int lModuleNo, int lOffset, uint uMode, ref uint upValue);

Parameters

[in/out] Name [Init Value] Explanation
[in]lModuleNo 모듈 번호
[in]lOffset 입력 접점에 대한 Offset 위치
[in]uMode 인터럽트 발생 에지 설정: AXT_DIO_EDGE
- [00h] 하강 에지
- [01h] 상승 에지
[out]upValue 인터럽트 발생 설정 여부 (Double Word)

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호
[3104] AXT_RT_DIO_INVALID_MODE : 유효하지 않은 Edge 를 설정했을 때

Description

사용자가 지정한 입력 접점 모듈, Interrupt Rising / Falling Edge Register 의 Offset 위치에서 double word 단위로 상승 또는 하강 에지 값을 확인한다. 지정한 모듈이 어떤 모듈인지 확인하여 아래의 Table 에서 Offset 사용 범위를 참조하여 확인한다.

Offset 범위와 Value 값

Module Offset Value
SIO-DI32 0 00000000h ~ FFFFFFFFh
SIO-DB32x 0 00000000h ~ FFFFFFFFh

예제 코드

// 0번째 입력 접점 모듈, Interrupt Rising Edge Register의 Offset 위치에서 double word 단위로 상승 에지 설정 값을 읽는다.
DWORD uEdge;

AxdiInterruptEdgeGetDword(0, 0, UP_EDGE, &uEdge);