导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[讨论]一个怪问题,大家有没有见过仿真可以,烧写到STC不行[rrrc]

 *第43425篇: [讨论]一个怪问题,大家有没有见过仿真可以,烧写到STC不行

  
楼 主:rrrc 2006年9月21日11:21
 [讨论]一个怪问题,大家有没有见过仿真可以,烧写到STC不行
我有个程序,有一段一个判断在仿真器上很正常,但一写到片子里就不行,仿真器是JDT8052,片子是STC89C52RC, 请注意位变量 autest 在仿真器时 如果ad_buf[0] 大于5,autest会变成 1 ;但一写到STC89C52RC片子里,这里就操作不了,另外我发现只要对 ad_buf[x]间接操作,  x值为0-6,例如: mic_vol= mic[ad_buf[6]/6] ; 在仿真器里就正常,一写到片子里就操作无效。

整个程序编译后显示编译成功,

结果如下:
data=77.1, xdata=0, code=5494, 

  程序如下:

/**********************得到AD值****************************/
uchar idata ad_buf[7] ;
bit autest=0 ;

void adget(void)//读各电位器AD值
{

 uchar adcon ;
 P2|=0x70 ;

 if((P2&0x70)==0x70)
   {
    adcon=0 ;
    ad_start=1 ;
    P2&=adset[adno] ;
    delay(1) ;
    EA=0 ;
    ad_start=0 ;
    while(C_ADTEST==1){adcon++ ;}
    EA=1 ;
    if(ad_buf[adno]!=adcon)
      {

      ad_buf[adno]=adcon ; 

   if(adno==0)
     {
  if(ad_buf[0]>  5)autest=1 ;
  else autest=0 ;
  }     
   if(adno==1)
     {
  autreble=1 ;
        }
   if(adno==2)
     {
  aubass=1 ;
        }
      if(adno==3)
        {

        mic429=1 ;
  }
      if(adno==4)
        {
     auvollock=1 ;  
        }
   if(adno==5)
     {
  if(ad_buf[5]>  5)mictest=1 ;
  else mictest=0 ;
  }      
      }
    adno++ ;

 if(adno>  6)adno=0 ;
    }
 
  P2|=0x70 ;
}

//=======================================================


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:[讨论]关于共享变量和可重入函数在实际编程中的处理

[下一篇主题]:[注意]ARM9开发板看着就舒服