首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

谁帮小弟我看看下面delay函数中的有关问题,为什么小弟我的函数没法延时,有关问题已经注释在上面了

2012-03-26 
哪位高手帮我看看下面delay函数中的问题,为什么我的函数没法延时,问题已经注释在上面了;#include reg52.h

哪位高手帮我看看下面delay函数中的问题,为什么我的函数没法延时,问题已经注释在上面了;
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char

uchar led_all;

void delay(uint sm);
void main()
{
  led_all = 0xfe;
  P0 = led_all;
while(1)
{
delay(400);
led_all = _crol_(led_all,1);
P0 = led_all;
 
 

}

void delay(uint sm)
{
  uint x, y=115;
for(x = sm;x>0;x--) //为什么这句改为 for(x=0;x<sm;x++)就有问题????
{
//while(y--)
//;
for(y = 0; y<115; y++);//为什么把这句改为上面的while语句也会出问题?
}
}

[解决办法]
你把编译器优化调低点或关掉试试看
[解决办法]
有时候,编译器优化代码,能够提高程序的运行效率;
这里,编译器可能将延时当作无用代码优化掉,所以你可以关闭优化试试。

热点排行