打印

请问一个简单延时函数

[复制链接]
2073|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shanshui00|  楼主 | 2007-2-6 23:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在板上跑流水灯程序时,用到下面延时函数时:
void delay_X_ms(uint32 x)
{
 uint32 i;
 i=1000;
 for(;x--;x>0)
  for(;i--;i>0);
}
循环无法进行,LED始终是亮的(初始化的时候是亮的).但是改为下面形式时:
void delay_X_ms(uint32 x)
{
 uint32 i;
 
 for(;x--;x>0)
  for(i=1000;i--;i>0);
}
流水灯终于正常流起来了,请各位分析一下是怎么回事?

相关帖子

沙发
rockingliu| | 2007-2-7 08:38 | 只看该作者

FW

C学艺不精吧,
 底下那个 for 循环每次必须重新初始化的,否则第一次减为0 后下次进来是从FFFF开始减的 ,当然有问题了。

使用特权

评论回复
板凳
likee| | 2007-2-7 14:25 | 只看该作者

re:

x减一的时候是正常的,但再减一呢?再次进入的时候就不对了,i已经减到0了,没有办法再循环了,只有在for中第一句将它再次初始化,再次令它等于1000才对.

使用特权

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

本版积分规则

4

主题

7

帖子

0

粉丝