谁帮帮我,这个错误是什么意思?

ftshlong   2006-5-11 20:27 楼主
版本是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 到底有什么不对劲啊,~~

回复评论 (5)

这段代码语法没有问题
点赞  2006-5-11 23:16
可能是中断内if语句和else语句太多了软件有问题,有可能吧
点赞  2006-5-12 09:37
语法应该是没有问题的,三层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();
}
点赞  2006-5-12 10:45
已经解决了 是一个设置的问题,多谢几位了
点赞  2006-5-13 13:25
请问是怎么解决的,我也遇到相同的问题了。
点赞  2008-11-2 22:44
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复