COMI_ENC_Config


SYNOPSYS

void COMI_ENC_Config (HANDLE hDevice, int ch, int mode, BOOL bResetByZ)

DESCRIPTION

  • 이 함수는 지정한 A/B 상 카운터 채널의 모드를 설정합니다.

PARAMETER

▶ hDevice : 디바이스 핸들값입니다. 이 값은 COMI_LoadDevice() 함수에 의해 얻어진 값이어야 합니다.

▶ ch : Counter 채널번호. 채널 번호는 0 부터 시작합니다.

▶ mode : 채배모드를 설정합니다.

Value

Meaning

0 또는 ENCODER_1X

엔코더의 기본 분해능대로 카운트합니다.

1 또는 ENCODER_2X

2 채배 모드. 이 모드에서 카운터는 엔코더의 기본 분해능의 2배 분해능을 가질 수 있습니다.

2 또는 ENCODER_4X

4 채배 모드. 이 모드에서 카운터는 엔코더의 기본 분해능의 4배 분해능을 가질 수 있습니다.

▶ bResetByZ : A/B 상 카운트값을 Z 상 입력단자에 펄스가 입력될 때마다 리셋(Reset) 할 것인지를 지정합니다.

Value

Meaning

0

이 값으로 지정하면 A/B 상 카운트 값은 Z 상에 의해 영향을 받지 않습니다.

1

이 값으로 지정하면 A/B 상 카운트 값은 Z-펄스가 발생할 때마다 리셋됩니다.

Device

  • 지원 디바이스: COMI-SD501

EXAMPLE

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*************************************************************
/* [COMIDAS sample program by COMIZOA Inc., Ltd]
/*
/* - Subject  : Encoder Counter.
/* - Contents : 이 프로그램은 1개의 Encoder counter 채널을 읽어서 화면에
/*              보여주는 프로그램 입니다.
/* - Reamkrs  :
/*   1. 이 예제는 COMI-SD501 보드에만 적용가능합니다.
/**************************************************************/

#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include "Comidas.h"

#define CH 0

void main(void)
{
  HANDLE hDevice;
  long count;

  COMI_LoadDll();
  hDevice = COMI_LoadDevice(COMI_SD501, 0);
  if(hDevice == INVALID_HANDLE_VALUE){
    printf("Can't load specified device!");
    exit(0);
  }

  COMI_ENC_Config(hDevice, CH, ENCODER_1X, FALSE);
  COMI_ENC_Reset(hDevice, CH) /* Reset counter to 0 */

  while(!kbhit())
  {
    count = COMI_ENC_Read(hDevice, CH);
    printf("Read Encoder Count = %9ld\n", count);
  }

  COMI_UnloadDevice(hDevice);
  COMI_UnloadDll();
}