不同数据类型的延时函数

2019-07-16 00:40发布


以下两个延时函数,为什么延时不同呢?voidint_delay(){
  unsigned int m;  for(m=0;m<36000;m++);   
}
voidchar_delay() {
   unsigned char i,j;    for(i=0;i<200;i++)        for(j=0;j<180;j++) ;    }
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
pandihong
1楼-- · 2019-07-16 02:58
第一个只有一个for判断,第二个有两个for,设所用晶振为12M,则一个机器周期就是1微秒。而for指令是双周期指令,所以执行一次要2个微秒
花逝梦无痕
2楼-- · 2019-07-16 03:51
执行指令也是要时间的,所以程序越简洁高效越好。
菜鸟一个a
3楼-- · 2019-07-16 07:26
pandihong 发表于 2013-5-13 16:15
第一个只有一个for判断,第二个有两个for,设所用晶振为12M,则一个机器周期就是1微秒。而for指令是双周期 ...

第一个延时比第二个延时很多,不知为什么?好像都执行36000次
想你没理由
4楼-- · 2019-07-16 12:29
你程序的语句数量不一样,及时执行的次数一样但不代表语句的执行次数是一样的,语句的执行也是要时间的
蓦然回首;
5楼-- · 2019-07-16 18:19
 精彩回答 2  元偷偷看……
624542931
6楼-- · 2019-07-17 00:10
菜鸟一个a 发表于 2013-5-14 09:19
第一个延时比第二个延时很多,不知为什么?好像都执行36000次

您將第一個m>36000改為m>30000,第二個程序J>180改為j>150,再調試一下試試看,應該是第二程序延時要比第一個延時長!因為for循環跳轉需要時間。

一周热门 更多>