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
[58094] Re:us(microsecond) delay함수를 만들고 싶습니다.
남병철.레조 [lezo] 2239 읽음    2009-08-19 10:34
안녕하세요. 남병철.레조입니다.

ms 단위 이하로 내려간걸 예전에 보았던 기억이 나서 다시 찾아보니 클래스까지 만들어 놓았네요. ㅎㅎ
또한 인공지능? 관련 책에도 다룬걸 본 적이 있습니다.

QueryPerformanceFrequency를 사용하는데... 테스트 하진 않았습니다. (언젠가 본거 같기도 하고 -,-)
좀 써보고나서 괜찮으면 인터페이스 정리해서 팁 같은데 올려주세요. ㅎㅎ
(시간을 알면 딜레이 주는것도 가능하겠죠?? 흠..)


class HRTimer {
public:

    HRTimer(void)

    double getFrequency(void);
    void startTimer(void) ;
    double stopTimer(void);

private:

    LARGE_INTEGER start;
    LARGE_INTEGER stop;

    double frequency;
    //..

}

HRTimer::HRTimer(void) : frequency(1.0 / this->getFrequency()) { }

double HRTimer::GetFrequency(void)
{

    LARGE_INTEGER proc_freq;

    if (!::QueryPerformanceFrequency(&proc_freq)) throw Exception(TEXT("QueryPerformanceFrequency() failed"));

    return proc_freq.QuadPart;

}

void HRTimer::StartTimer(void)
{

    DWORD_PTR oldmask = ::SetThreadAffinityMask(::GetCurrentThread(), 0);
    ::QueryPerformanceCounter(&start);
    ::SetThreadAffinityMask(::GetCurrentThread(), oldmask);

}

double HRTimer::StopTimer(void)
{

    DWORD_PTR oldmask = ::SetThreadAffinityMask(::GetCurrentThread(), 0);
    ::QueryPerformanceCounter(&stop);
    ::SetThreadAffinityMask(::GetCurrentThread(), oldmask);

    return ((stop.QuadPart - start.QuadPart) * frequency);

} 



[출처]
http://msdn.microsoft.com/en-us/library/ms644904(VS.85).aspx




김정민 님이 쓰신 글 :
: 센서를 구동할려고 하는데 us(microsecond)단위로 Control해야 된다고 합니다.
:
: 일반적인 PC에 WindowsXP를 OS로 사용하는 PC에서 구동되는 us(microsecond) delay함수를 만들어 주세요.
:
: 부탁드립니다.

+ -

관련 글 리스트
58091 us(microsecond) delay함수를 만들고 싶습니다. 김정민 1920 2009/08/18
58130     Re:us(microsecond) delay함수를 만들고 싶습니다. Lynx 1719 2009/08/21
58094     Re:us(microsecond) delay함수를 만들고 싶습니다. 남병철.레조 2239 2009/08/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.