vs2008如何延时即在执行一次循环时停1s钟的时间,这样就实现了计时的功能。我要使信号在一定是时间内是高电平,就是类似方形脉冲信号。一段时高电平,一段时间低电平。

解决方案 »

  1.   

    定时器不行么?
    或者sleep(1000)?
      

  2.   

    #include <stdio.h>
    #include <Windows.h>
    #include <Mmsystem.h>
    #pragma comment(lib, "Winmm.lib")
    void WINAPI onTimeFunc(UINT wTimerID, UINT msg,DWORD dwUser,DWORD dwl,DWORD dw2);
    int main(int argc, char* argv[])
    {
      MMRESULT timer_id;
      int n = 0;
      timer_id = timeSetEvent(5000, 1, (LPTIMECALLBACK)onTimeFunc, DWORD(1), TIME_PERIODIC);
      if(NULL == timer_id)
      {
      printf("timeSetEvent() failed with error %d\n", GetLastError());
      return 0;
      }
      while(n<20)
      {
      printf("Hello World\n");
      Sleep(2000);
      n++;
      }
      timeKillEvent(timer_id); //释放定时器
      return 1;
    }
    void WINAPI onTimeFunc(UINT wTimerID, UINT msg,DWORD dwUser,DWORD dwl,DWORD dw2)
    {
      printf("time out\n");
      return;
    }vc6+winxp通过
    使用多媒体定时器,可实现你的精确定时,1s高,1s低
      

  3.   

    对于时间精度要求不高sleep(1000)就ok
    否则要用高精度计数器