用一位数组编写了个流水灯程序,开始一直出错误,看了一下I/O口的状态,确实有问题:
#include
#define uint unsigned int
#define uchar unsigned char
uchar num;
uchar code table[]={
0xff,0xfe,0xfd,0xfb,0xf7,0xef,
0xdf,0xbf,0x7f,0xbf,0xdf,0xef,
0xf7,0xfb,0xfd,0xfe,0xff
};
void delay(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0j--);
}
void main()
{
while(1)
{
for(num=0;num<17;num++)
{
P0=table[num];
delay(300);
}
}
}
程序就是这样的,I/O口的状态开始是乱的,我想是延时出问题了,但又搞不清楚具体是什么问题。然后把程序改成这样:
#include
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={
0xfe,0xfd,0xfb,0xf7,0xef,
0xdf,0xbf,0x7f,0xbf,0xdf,
0xef,0xf7,0xfb,0xfd,0xfe
};
void delay(uint i)
{
while(i--);
}
void main()
{
uchar i=0;
while(1)
{
for(i=0;i<15;i++)
{
P0=table[i];
delay(30000);
}
}
}
改过以后,运行是没问题了,可就是搞不明白上边哪个问题出哪了!!希望有人指点指点!谢谢
2013-4-26 16:32:11
for(j=110;j>0j--);
你确定这个函数通过编译了?
for(j=110;j>0j--);
你确定这个函数通过编译了?
举报
2013-4-28 11:19:55
不可能没有错误。。for(j=110;j>0j--);,,,第二、三个表达式之间缺少一个分号。
不可能没有错误。。for(j=110;j>0j--);,,,第二、三个表达式之间缺少一个分号。
举报
2013-5-2 13:36:05
引用: longdeng84 发表于 2013-4-28 11:19
不可能没有错误。。for(j=110;j>0j--);,,,第二、三个表达式之间缺少一个分号。 ...
那个是在往上写的时候忘了这个,在Keil中肯定不会有这样的问题!!
关键这都不是要点!!!
引用: longdeng84 发表于 2013-4-28 11:19
不可能没有错误。。for(j=110;j>0j--);,,,第二、三个表达式之间缺少一个分号。 ...
那个是在往上写的时候忘了这个,在Keil中肯定不会有这样的问题!!
关键这都不是要点!!!
举报