[技术问题解答] 关于延时函数delay()问题

[复制链接]
4611|13
 楼主| 小帅哥哥 发表于 2015-7-3 16:29 | 显示全部楼层 |阅读模式
两个延时函数
void delay(void)
{
  int i;

  for(i=0;i<60000;i++);
}

void delay(void)
{
  unsigned int i;

  for(i=0;i<60000;i++);
}

这两个延时函数 第一个会卡死,第二个就正常运行 是什么情况啊

打赏榜单

xyz549040622 打赏了 1.00 元 2015-07-05

btiger2000 发表于 2015-7-3 16:30 | 显示全部楼层
int型永远也达不到60000
 楼主| 小帅哥哥 发表于 2015-7-3 16:36 | 显示全部楼层
btiger2000 发表于 2015-7-3 16:30
int型永远也达不到60000

恩,我刚才把unsigned  改成了 long   结果是两个延时时间不一致啊 差很多啊   这是什么情况啊
btiger2000 发表于 2015-7-3 16:40 | 显示全部楼层
long型++,好像转成汇编,一条语句搞不定
 楼主| 小帅哥哥 发表于 2015-7-3 16:57 | 显示全部楼层
btiger2000 发表于 2015-7-3 16:40
long型++,好像转成汇编,一条语句搞不定

所以耗费的时间会长一点  所以延时的时间也会长一点 对么

btiger2000 发表于 2015-7-3 17:01 | 显示全部楼层
可可球 发表于 2015-7-3 19:25 | 显示全部楼层
unsigned Int 是无符号型,和int是不一样的
FireRiver9 发表于 2015-7-3 20:17 | 显示全部楼层
Int是有符号型,达不到65536
zyj9490 发表于 2015-7-4 11:37 | 显示全部楼层
第一个会溢出,第二个不会。
lgq1542380129 发表于 2015-7-4 12:23 | 显示全部楼层
函数名称一样,编译器不告警或报错?
 楼主| 小帅哥哥 发表于 2015-7-4 13:16 | 显示全部楼层
lgq1542380129 发表于 2015-7-4 12:23
函数名称一样,编译器不告警或报错?

分两次写的
justtest111 发表于 2015-7-4 14:07 | 显示全部楼层
int 正数只能到111111111111111=32767啊,你第一个都溢出了啊
xyz549040622 发表于 2015-7-5 21:06 | 显示全部楼层
发帖有奖,打赏1元,欢迎常来21ic发帖提问哟!
xishanggongzi 发表于 2015-7-6 11:35 | 显示全部楼层
int是两字节的?单片机吗?
精准延时好像是用的
do while + _nop_() 吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

71

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部