软件延时:for循环中使用不同的参数延时有很大的差异是什么原因

2019-07-14 17:21发布

while(1)
    {
     GPIO_SetBits(GPIOG, GPIO_Pin_1);

      //延时1ms的程序
         for(count =0 ; count < 6; count++)
    {
            for(i = 0; i < 1000; i++);
    }
      
    //SET TO LOW
    GPIO_ResetBits(GPIOG, GPIO_Pin_1);
   
    //延时1ms的程序
         for(count =0 ; count < 6; count++)
    {
        for(i = 0; i < 1000; i++);
    }
}






while(1)
    {
      GPIO_SetBits(GPIOG, GPIO_Pin_1);
      //延时1ms的程序
         for(count =0 ; count < 1; count++)
    {
            for(i = 0; i < 6000; i++);
    }
       GPIO_ResetBits(GPIOG, GPIO_Pin_1);
    //延时1ms的程序
         for(count =0 ; count <1; count++)
    {
        for(i = 0; i < 6000; i++);
    }

  }
只是修改了一下参数,G1脚高电平持续的时间,变化很大,这是什么原因呢?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
陈涛少01
1楼-- · 2019-07-15 05:45
定时器之类的硬件时钟更准确些
nyvvhxcs
2楼-- · 2019-07-15 05:56
看看主频。。。。
vyywywew
3楼-- · 2019-07-15 11:23
应该看一下编译的代码,即使只有一点差异,6000次积累下来差异就大了
脑洞大赛17
4楼-- · 2019-07-15 17:09
 精彩回答 2  元偷偷看……
wq644921241
5楼-- · 2019-07-15 19:23
软件延时本身就不太精确时用的

一周热门 更多>