C编写延时程序时,下面这段代码表示延时187ms?怎么计算的?晶振为12MHZ for(t2=0;t2<8000;t2++){}
C编写延时程序时,下面这段代码表示延时187ms?怎么计算的?晶振为12MHZ for(t2=0;t2<8000;t2++){}
日期:2021-06-28 22:10:14 人气:1
不可能是187ms吧,
通常情况下,一次for循环运行需要8个机器周期,12MHZ的一个机器周期为1us。
所以for(t2=0;t2<8000;t2++){}的时间消耗大约为8000*8=64000us=64ms
但是具体的运行环境差别较大,不过应该没有187ms这么夸张,给你一个程序验证一下:
#include <stdio.h>
__forceinline unsigned _int64 My_clock(void)
通常情况下,一次for循环运行需要8个机器周期,12MHZ的一个机器周期为1us。
所以for(t2=0;t2<8000;t2++){}的时间消耗大约为8000*8=64000us=64ms
但是具体的运行环境差别较大,不过应该没有187ms这么夸张,给你一个程序验证一下:
#include <stdio.h>
__forceinline unsigned _int64 My_clock(void)