// Wait for some µs // Warning : this function eat CPU time ! void udelay(unsigned int delay) { unsigned __int64 nCtr=0, nFreq, nCtrStop; QueryPerformanceFrequency((LARGE_INTEGER*)&nFreq); QueryPerformanceCounter((LARGE_INTEGER*)&nCtrStop); nCtrStop+=(__int64)((nFreq*(__int64)(delay-3))/1000000); for(;nCtr<nCtrStop;) { _asm rep nop QueryPerformanceCounter((LARGE_INTEGER*)&nCtr); } return; }