for(x=3;x>0;x--).......1
for(y=8000;y>0;y--);..........2
for(y=8000;y>0;y--)..........3
for(x=3;x>0;x--);...........4
以上两个for语句虽然在计算次数上都是24000次,但似乎是第二个for语句在"3"和"4"间跳动次数比第一个for语句多很多次,导致单片机运行这两个程序的时间不一样,从而延时不同,不知道我分析的对吗???有这种可能吗???
还有这个
void delay(unsigned char z)
{
unsigned char x;
unsigned int y;
for(x=0;x<z;x++)
for(y=0;y<8000;y++);
}
void delay(unsigned char z)
{
unsigned char x;
unsigned long y;
for(x=0;x<z;x++)
for(y=0;y<8000;y++);
}
这两个延时为什么不一样?怎么不一样了?详细解释下,没分了,谢谢
呵呵,这个比较简单了,一个int型,一个是long型,处理是不一样的,肯定第二段程序时间长,而且长不少。。
几个简单例子,同样在一个长度一样的小胡同里跑,你认为是自行车快呢还是大卡车快呢?
还有这个
void delay(unsigned char z)
{
unsigned char x;
unsigned int y;
for(x=0;x<z;x++)
for(y=0;y<8000;y++);
}
void delay(unsigned char z)
{
unsigned char x;
unsigned long y;
for(x=0;x<z;x++)
for(y=0;y<8000;y++);
}
这两个延时为什么不一样?怎么不一样了?详细解释下,没分了,谢谢