include
#define uchar unsigned char
sbit LED=P1^0;
uchar n;
void main()
{
n++;
if(n=50)
{n=0;
LED=!LED;
}
}
有2个worings 不知道错哪 求告知
下面是警告:
Build target 'Target 1'
linking...
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: ?C_START
MODULE: STARTUP.obj (?C_STARTUP)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: ?C_START
MODULE: STARTUP.obj (?C_STARTUP)
ADDRESS: 000DH
Program Size: data=9.0 xdata=0 code=15
"aa" - 0 Error(s), 2 Warning(s).
一切尽在不言中,,,
其实楼上已经说很清楚了,所以,如果还是有问题的话,最好是对照例程代码仔细的看
同意4楼更改头文件的观点,但是应该是if(n == 50),而不是n == 0
header名稱多了一點,除非是你自定義,等同比較用==,賦值用單一個=
除了上面说的,C_START没有用到吧。这种警告没事。可以在工程中搜索一下,C_START在哪里出现了。什么东西调用了它。没有外部声明,还是怎么着。
出现此警告应是#includ,reg51.多写了个. 如修改了此处,再编译还会出现警告,那是因为if(n=50)始终成立,条件不起作用,应写成if(n==50)或if(50==n)。
reg.51.h--> reg51.h
if(n=50)应写成if(n==50)
程序改成这样应该好些吧
void main()
{
while(1)
{ n++;
if(n=50)
{n=0;
LED=!LED;
}
}
}
本帖最后由 霹雳十 于 2016-2-10 22:21 编辑
include //多一个'"."会导致warning
#define uchar unsigned char
sbit LED=P1^0;
uchar n ; //此处赋初值会更好,否则会多几次空循环
void main()
{
n++;
if(n==50) //等于写成赋值符,有时会出Waring,有时不会,依keil版本而定
{
n=0;
LED=!LED;
}
}
//试试这个。