延时函数

[复制链接]
1873|8
 楼主| dingy 发表于 2011-9-28 14:33 | 显示全部楼层 |阅读模式
网上的一段延时函数,好像有点问题,函数功能完成毫秒延时,如下:
/*延时函数*/
void delay_ms(unsigned char i) {
  unsigned char a, b;
  for (a = 1; a < i; a++) {
    for (b = 1; b; b++) {
        ;
        }
    }
}
如果i的值是1,第一个循环a<i,为假,跳出循环,函数返回,没有达到延时1ms的效果
pengf 发表于 2011-9-28 14:36 | 显示全部楼层
应该改成for(a=0;a<i;a++)
晶振1MHZ
llljh 发表于 2011-9-28 14:39 | 显示全部楼层
方法1
改成 a=0
方法2
a <= i
zwll 发表于 2011-9-28 15:00 | 显示全部楼层
supernan 发表于 2011-9-28 15:04 | 显示全部楼层
for循环,第一不做判断吧?
juventus9554 发表于 2011-9-28 15:08 | 显示全部楼层
只有do while 循环才不作首个判断直接杀入循环体的。
司徒老鹰 发表于 2011-9-28 15:13 | 显示全部楼层
你的第二个for是个无限循环吧   同时一个个 a = 0
pengf 发表于 2011-9-28 15:17 | 显示全部楼层
貌视又不用改吧,可以循环一次!
 楼主| dingy 发表于 2011-9-28 15:21 | 显示全部楼层
哦,好的,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

745

主题

10920

帖子

6

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