COMI_SetCounter


SYNOPSYS

void COMI_SetCounter (HANDLE hDevice, int ch, int rw, int op, int bcd_bin, USHORT load_value)

DESCRIPTION

  • 이 함수는 지정한 카운터 채널의 동작 방식을 결정하고, 원하는 카운트 값을 로드(Load) 합니다.

PARAMETER

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

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

▶ rw : Read/Write mode 를 선택합니다. 이 값은 다음 중 하나의 값이어야 합니다.

  • READ_LOAD_MSB => 상위 1 바이트 값을 로드합니다.

  • READ_LOAD_LSB => 하위 1 바이트 값을 로드합니다.

  • READ_LOAD_WORD => 2 바이트 값을 로드합니다.

▶ op : 카운터의 동작 모드(Operation mode) 를 결정합니다. 이 값은 CMODE0, CMODE1, CMODE2, CMODE3, CMODE4, CMODE5 중의 하나이어야 합니다. Operation mode 에 관한 자세한 내용은 하드웨어 매뉴얼 부록을 참조하십시오.

▶ bcd_bin : 카운트를 BCD 값으로 할 것인지, BINARY 값으로 할 것인지를 결정합니다. 이 값은 BCD 나 BINARY 중의 하나이어야 합니다. 일반적으로 BINARY 값을 입력합니다.

▶ load_value : 카운터에 로드할 값을 지정합니다. 이 값은 0 ~ 65535 사이의 값이어야 합니다.

Device

  • 지원 디바이스: COMI-CP101, COMI-CP201, COMI-CP501

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
42
43
44
45
46
47
48
/*********************************************************************
/* [COMIDAS sample program by COMIZOA Inc., Ltd]
/*
/* Subject  : Counter
/* Contents : 이 프로그램은 GATE0에 5 volt를 입력하고 ExtClk 에 일정
/*            Frequency 의 pulse 신호를 입력하여 약 1초 동안의 Pulse 수를 반
/*            복해서 count 하는 프로그램 입니다.
/* - Remakrs:
/*   1. 이 예제는 COMI-CP101 보드를 사용하는 것으로 작성되었습니다. 따라서 다른 보드를
/*      사용하는 경우에는 COMI_LoadDevice(...)함수의 첫 번째 파라미터를 알맞은 디바이스
/*      ID로 바꾸어야 합니다.
/**********************************************************************/

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

void main(void)
{
  HANDLE hDevice;
  int status = 0;
  USHORT count;

  if(!COMI_LoadDll()){
    printf("Comidas.dll load failure");
    exit(0);
  }

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

  COMI_SetCounter(0,READ_LOAD_WORD, CMODEO, BINARY, 65535);

  while(!kbhit())
  {
    Sleep(1000);
    COMI_LoadCount(0, 65535);
    count = 65535 - COMI_ReadCount(0) + 1;
    printf("Count = %u\n", count);
  }
  COMI_UnloadDevice(hDevice);
  COMI_UnloadDll();
}