打印

没有达到延时1ms的效果

[复制链接]
1009|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhanghqi|  楼主 | 2012-6-7 19:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
网上的一段延时函数,好像有点问题,函数功能完成毫秒延时,如下:
/*延时函数*/
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的效果
沙发
wuhany| | 2012-6-7 19:29 | 只看该作者
应该改成for(a=0;a<i;a++)
晶振1MHZ

使用特权

评论回复
板凳
jiahy| | 2012-6-7 19:29 | 只看该作者
方法1
改成 a=0
方法2
a <= i

使用特权

评论回复
地板
lizye| | 2012-6-7 19:29 | 只看该作者
b<121;

使用特权

评论回复
5
jiaxw| | 2012-6-7 19:30 | 只看该作者
for循环,第一不做判断吧?

使用特权

评论回复
6
shimx| | 2012-6-7 19:30 | 只看该作者
只有do while 循环才不作首个判断直接杀入循环体的。

使用特权

评论回复
7
spark周| | 2012-6-7 19:33 | 只看该作者
你的第二个for是个无限循环吧   同时一个个 a = 0

使用特权

评论回复
8
liliang9554| | 2012-6-7 19:33 | 只看该作者
貌视又不用改吧,可以循环一次!

使用特权

评论回复
9
zhanghqi|  楼主 | 2012-6-7 19:35 | 只看该作者
哦,好的,谢谢

使用特权

评论回复
10
zhanghqi|  楼主 | 2012-6-7 19:36 | 只看该作者
结贴了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

852

主题

11757

帖子

5

粉丝