CPU 測速(MHz)和高精度延時(微秒級) |
|
conundrum
尊榮會員 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
http://www.cppfans.com/articles/system/cpuspd_usdly.asp CPU 測速(MHz)和高精度延時(微秒級) (瀏覽 3009 次) Victor Chen, (C 愛好者) 一.高精度延時, 是 CPU 測速的基礎 Windows 內部有一個精度非常高的計時器, 精度在微秒級, 但不同的系統這個計時器的頻率不同, 這個頻率與硬體和作業系統都可能有關。 利用 API 函數 QueryPerformanceFrequency 可以得到這個計時器的頻率。 利用 API 函數 QueryPerformanceCounter 可以得到計時器的當前值。 根據要延時的時間和計時器的頻率, 可以算出要延時的時間計時器經過的周期數。 在迴圈裏用 QueryPerformanceCounter 不停的讀出計時器值, 一直到經過了指定周期數再結束迴圈, 就達到了高精度延時的目的。 高精度延時的程式, 參數: 微秒: void DelayUs(__int64 Us) { LARGE_INTEGER CurrTicks, TicksCount; QueryPerformanceFrequency(&TicksCount); QueryPerformanceCounter(&CurrTicks); TicksCount.QuadPart = TicksCount.QuadPart * Us / 1000000i64; TicksCount.QuadPart = CurrTicks.QuadPart; while(CurrTicks.QuadPart |
zhvickie
一般會員 發表:16 回覆:41 積分:11 註冊:2003-05-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |