精確到1ms的定時器

來源:互聯網
上載者:User
  

SetTimer()設定的定時器的定時時間>50ms,這在即時資料採集中是不夠的。用多媒體定時器能精確到1ms,效果很好。//定時器------------------------#define           TIMER_ACCURACY        1int                  TimerID;UINT             wAccuracy;int                  InitTimer();int                  ReleaseTimer();void PASCAL TimerProc(UINT wTimerID,UINT msg,DWORD dwUser,DWORD dwParam,DWORD dlParam); int    InitTimer(){       TIMECAPS       tc;        if(timeGetDevCaps(&tc,sizeof(TIMECAPS))==TIMERR_NOERROR) //擷取系統的取值範圍       {               wAccuracy=min(max(tc.wPeriodMin,TIMER_ACCURACY),tc.wPeriodMax);              timeBeginPeriod(wAccuracy);               return 1;       }       else       {              MessageBox(NULL,"定時器無法使用!",NULL,NULL);              return 0;       }} int ReleaseTimer(){       timeKillEvent(TimerID);       timeEndPeriod(wAccuracy);       return 1;} /*名稱:TimerProc 功能:定時處理 參數:wTimerID定時器ID,msg訊息參數,dwUser使用者,dwParam參數1,dlParam參數2*/void PASCAL TimerProc(UINT wTimerID,UINT msg,DWORD dwUser,DWORD dwParam,DWORD dlParam){}//開啟定時器TimerID=timeSetEvent(1000,wAccuracy,(LPTIMECALLBACK)TimerProc,(DWORD)0,TIME_PERIODIC);       //1000為定時時間,表示1000ms

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.