版本是IAR 3.1A
连接时产生的错误
Error[e46]: Undefined external "?cstart_init_zero" referred in fet440_ta02 ( C:\Documents and Settings\dlh\My Documents\Debug\Obj\fet440_ta02.r43 )
请问这是什么错误啊?
我检查了下,发现只要把我的中断程序里if else那一段取消掉就不会有这个错误了,不知道为什么。f,h是我在前面已经定义过的全局char变量,大侠们帮帮我啊!感激不尽!
__interrupt void Timer_A (void)
{
KEYJUDGE();
if(P1IN==0xFF)
{
f=0;
h=0;
}
else
{
if(f==1&&h==0)
{h=1;
KEYCODE();
}
else if(f==0)
{
f=1;
}
}
LCDDIP();
}
我要疯了,这一小段if else 到底有什么不对劲啊,~~
可能是中断内if语句和else语句太多了软件有问题,有可能吧
语法应该是没有问题的,三层if嵌套也不算多。不过IAR C430编译时有时会出一些奇怪的错误报警。
建议将最后一个“else if( f==0).... ”改写一下试试:
__interrupt void Timer_A (void)
{
KEYJUDGE();
if(P1IN==0xFF)
{
f=0;
h=0;
}
else
{
if((f==1) && (h==0))
{
h=1;
KEYCODE();
}
else
{
if(f==0) f=1;
}
{
LCDDIP();
}