tanguicaicai 发表于 2012-7-19 16:52:52

STC单片机在定时器中断中运行为什么会突然复位

void time_eggclock()
{ unsigned char xdata i,j;

for(i=0;i<10;i++)
{time_d++;
if(time_d==250)time_d=0;
}
//time_d++;
//if(time_d==12)time_d=0;
for(j=0;j<10;j++)
{
if(time_qi==1)//标示哪一路
   { if(t==0){time_qd=time_g;t=1;window_ok(j);}
       if(time_d==200)//为1s时自减
          {time_d=0;
         time_qd--;//UART_sedata(time_qd);
         time=time_qd/10;
         time=time_qd%10;
             if(time_qd==0)
                  { olddata=0;
                  rudata=0;
                  time_qi=0;
                  t=0;
                  for(i=0;i<6;i++)
                         {display_data=0;}
                  if(page==0||page==3)window_yunxing(j);
                     time=time_g/10;
                     time=time_g%10;}}}
      
            
}

}

数组都是unsigned char xdata 的

在定时器中断中,运行这 一段,有时突然会复位?为什么啊!找不出为什么?
哪位大哥知道的,说一下,小弟在这谢谢了。

tanguicaicai 发表于 2012-7-19 16:55:01

是不 是因为我在总程序中用了内部的EEPROM的原因?

tanguicaicai 发表于 2012-7-19 17:51:18

木有人知道
???大虾们有没有遇到这样的问题过

lcw_swust 发表于 2012-7-20 09:43:52

把单片机型号以及完整的程序发出来
有些单片机的xdata较小,或者没有xdata,对于这个范围之外的xdata进行操作可能会引起复位

tanguicaicai 发表于 2012-7-20 15:13:15

lcw_swust 发表于 2012-7-20 09:43 static/image/common/back.gif
把单片机型号以及完整的程序发出来
有些单片机的xdata较小,或者没有xdata,对于这个范围之外的xdata进行操 ...

单片机是STC11F32XE 总的RAM有1280,可以用了,程序有30K去,很长
还没有写完,是公司的一个项目。我把这一段放到主程序中去就没事了,
用标示位来进入,
复位也可能是 XDATA 溢出的问题。上面的程序可能 没有处理溢出的问题吧。
页: [1]
查看完整版本: STC单片机在定时器中断中运行为什么会突然复位