• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

c语言算时间 for延时,怎么算时间?for(i=;;)

8d511fecc304a4ec 2020-07-06 浏览量:545
c语言算时间 for延时,怎么算时间?for(i=;;) 
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 要实现这种无具体工作的延时,需要关闭相应优化,否则编译器会把单纯for循环,而没有具体执行内容的优化掉。


    此外这种循环延时是根据 具体执行环境和对应语句的

    先要找到这样的循环编译后 对应的机器指令数量,然后根据机器单条指令执行周期,二者一般相乘就是一个循环的延时时间,再乘上循环次数,就可以得到总的延时时间啦。

    这里单条指令执行周期就是 执行环境相关因素,它和具体的芯片型号、工作主频等相关。

    • 发布于 2020-07-08
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:6
  • 可以通过编译器调试功能查看,在这条语句开始打上断点,后面一句也打上断点,然后把两个运行时间相减法就是延时时间,注意需要设置晶振频率
    • 发布于2020-07-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 看下反汇编,一个循环几条指令。根据cpu频率计算指令周期,计算时间。
    • 发布于2020-07-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 你要先确定一下运行一个指令的时间,那么,运行了几次For,相应的时间再乘上倍数就是延时时间了
    • 发布于2020-07-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 晶频频率,与PLL倍数,计算内核频率,计算出内核周期,乘上i的大小,就是大约的时间,细调时,要仿真调整
    • 发布于2020-07-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果是STM32,可以通过开发环境仿真,设置断点来查看消耗时间;

    如果是51系列,那就得计算下,1条指令通常需要若干机器周期,1个机器周期等于1~6个时钟周期;按照11.0592来看,一次循环简单认为就是1条指令,那就是1us。


    • 发布于2020-07-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个与你单片机当前的指令周期有关,不同架构的单片机,这个指令周期的计算方法不一样
    • 发布于2020-07-22
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

c语言算时间 for延时,怎么算时间?for(i=;;)