C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[49538] Re:Re:data
카리스 [] 914 읽음    2007-06-04 16:27
감사해여~!
몇일쨰 보고 있는데 이해가 좀 더디네여 ㅎㅎ
ㄳㄳ~!!

김형준 님이 쓰신 글 :
: 느낌이 예전에 토크관련 질문올리신 분 같은데... 질문의 내용들이 좀... 많이 바쁘신것 같군요...
:
: AverageData 함수는 DAQ 보드에서 평균값얻는 함수 입니다.
: 설정한 채널과 갯수 만큼 돌면서 평균값을 구하는군요.
: 이렇게 하면 여러 채널 읽을경우
: 1. 시간이 많이 걸리고 채널사이의 동기가 안되고
: 2. 데이타 외곡도 생길 우려가 있어
: 잘 사용안하는데...
: 보통 필요한 채널을 묶어 scan을 사용합니다.
:
: 두번째 함수는 모르겠군요.
:
:
: ㅇ 님이 쓰신 글 :
: : double AverageData(USHORT ch, int count)
: : {
: :     static PT_AIVoltageIn ptAIVoltageIn;             
: :     static PT_AIConfig ptAIConfig;
: :     float dVoltage, total = 0.0;
: :     double ad_value = 0.0;
: :
: :     ptAIConfig.DasChan = ch;
: :     if(ch != 0) ptAIConfig.DasGain = 0;  //+/- 10V
: :     else ptAIConfig.DasGain = 1;         //+/- 5V
: :
: :     DRV_AIConfig(DriverHandle, (LPT_AIConfig)&ptAIConfig);
: :
: :     for(int i = 0; i < count; i++) {
: :             dVoltage = 0.0;
: :          ptAIVoltageIn.chan = ptAIConfig.DasChan;        // input channel
: :          ptAIVoltageIn.gain = ptAIConfig.DasGain ;    // input range
: :          ptAIVoltageIn.TrigMode = 0;                // 0 : internal trigger, 1 : external trigger
: :          ptAIVoltageIn.voltage = &dVoltage;
: :          DRV_AIVoltageIn(DriverHandle, (LPT_AIVoltageIn)&ptAIVoltageIn);
: :          total += dVoltage;            
: :     }                                  
: :
: :     ad_value = total / count;
: :     return ad_value;
: : }
: : //---------------------------------------------------------------------------
: : double ConvertData(USHORT ch, int avg)
: : {
: :     double value;
: :      double temp[5];
: :
: :      value = AverageData(ch, avg);
: :
: :        temp[0] = adj_valx[action_direct][ch] - init_valx[action_direct][ch];
: :      if(temp[0] == 0)  temp[0] = 0.01;
: :
: :        temp[1] = adj_valy[action_direct][ch] - init_valy[action_direct][ch];
: :      temp[2] = temp[1] / temp[0];
: :      temp[3] = (temp[2] * value) - (temp[2] * init_valx[action_direct][ch]);
: :      temp[4] = temp[3] + init_valy[action_direct][ch];
: :      if(temp[4] <= 0)  temp[4] = 0;
: :
: :      return temp[4];
: : }
: : 이해가 안되네여.. 대충 설명좀..

+ -

관련 글 리스트
49532 data 903 2007/06/04
49537     Re:data 김형준 872 2007/06/04
49538         Re:Re:data 카리스 914 2007/06/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.