COMI_PG_Start


SYNOPSYS

double COMI_PG_Start (HANDLE hDevice, int ch, double freq, unsigned int num_pulses)

DESCRIPTION

  • 이 함수는 지정한 PG 채널을 통하여 지정한 주파수 및 펄스 수에 의거한 펄스를 출력합니다.

PARAMETER

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

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

▶ freq : 출력할 펄스의 주파수를 Hz 단위로 지정합니다.

▶ num_pulses : 출력할 펄스의 수를 지정합니다. 만일 이 값을 0 으로 지정하면 COMI_PG-Stop() 함수가 수행되기 전까지 계속해서 펄스를 출력하게 됩니다.

RETURN VALUE

  • 출력되는 펄스의 실제 주파수. 펄스의 주파수는 장치 내부에 장착된 타이머의 Base Clock 을 정수로 분주하여 결정하므로 사용자가 지정한 주파수와 약간의 차이가 있을 수 있습니다.

Device

  • 지원 디바이스: COMI-SD501

EXAMPLE

  • Pulse Generator 함수 사용 예 1

 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
/*******************************************************
/* [COMIDAS sample program by COMIZOA Inc., Ltd]
/*
/* - Subject  : Pulse Generator
/* - Contents : 이 프로그램은 사용자가 지정하는 주파수를 가진 펄스를 사용자가 중단할 때까지
/*              계속하여 발생하는 프로그램 입니다.
/* - Remarks  :
/*   1. 이 예제는 COMI-SD501 보드에만 적용가능합니다.
/*******************************************************/

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

#define FREQ 1000.f /* Pulse freq. = 1 kHz */
#define PG_CH 0 /* Pulse Generator Channel number */

void main()
{
  HANDLE hDevice;
  double ActFreq;

  COMI_LoadDll();
  hDevice = COMI_LoadDevice(COMI_SD501, 0); /* Load device */

  printf("Generating infinite number of pulses through CH%d\n", PG_CH);
  printf("Set Freq. (Hz) = %.0f\n", FREQ);
  /* Start pulse generation */
  ActFreq = COMI_PG_Start(hDevice, PG_CH, FREQ, 0);
  printf("Actual Freq. (Hz) = %.0f\n", ActFreq);
  printf("Press any key to exit ! \n");
  while(!kbhit())
    ;
  COMI_PG_Stop(hDevice, PG_CH); /* Stop pulse generation */
  COMI_UnloadDevice(hDevice);
  COMI_UnloadDll();
}

EXAMPLE2

  • Pulse Generator 함수 사용 예 2

 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
49
50
51
/*******************************************************
/* [COMIDAS sample program by COMIZOA Inc., Ltd]
/*
/* - Subject  : Pulse Generator
/* - Contents : 이 프로그램은 사용자가 지정하는 주파수의 펄스를 발생시킵니다.
/*              단, 이프로그램에서는 펄스의 수를 NBR_PULSES 값에 의해 제한합니다.
/* - Remarks  :
/*   1. 이 예제는 COMI-SD501 보드에만 적용가능합니다.
/*******************************************************/

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

#define FREQ 1000.f /* Pulse freq. = 1 kHz */
#define NBR_PULSES 1000 /* 0 => Infinite number of pulses */
                        /* Others => The number of pulses to generate */

#define PG_CH 0 /* Pulse Generator Channel number */

void main()
{
  HANDLE hDevice;
  double ActFreq;

  COMI_LoadDll();
  hDevice = COMI_LoadDevice(COMI_SD501, 0); /* Load device */

  printf("Generating pulses through CH%d\n", PG_CH);
  printf("Set Freq.(Hz) = %.0f\n", FREQ);
  if(NBR_PULSES == 0)
    printf("Num pulses = Infinite\n");
  else
    printf("Num pulses = %d\n", NBR_PULSES);
  /* Start pulse generation */
  ActFreq = COMI_PG_Start(hDevice, PG_CH, FREQ, NBR_PULSES);
  printf("Actual Freq. (Hz) = %.0f\n\n", ActFreq);
  while(!kbhit()){
    /* Check if generation is completed */
    if(!COMI_PG_IsActive(hDevice, PG_CH))
      break;
  }
  printf("Pulse generation is completed!\n");
  printf("Press any key to exit!\n");
  getch();

  COMI_PG_Stop(hDevice, PG_CH); /* Stop pulse generation */
  COMI_UnloadDevice(hDevice);
  COMI_UnloadDll();
}