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();
}
|