英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

标题: PICC编译时出现以下错误,不知道是为什么 [打印本页]

作者: winnie    时间: 2009-3-28 10:45
标题: PICC编译时出现以下错误,不知道是为什么
Error[000]   : Can't find 0x105 words for psect rbss_0 in segment BANK0
Error[000]   : Can't find 0x2 words (0x2 withtotal) for psect intsave in segment BANK0
Error[000]   : Can't find 0x1 words (0x1 withtotal) for psect intsave_0 in segment COMBANK

源程序里面对定时器做了一些设置,并接收串口数据。用的是PIC16F877。
源程序如下:
unsigned char overflag;
void sciinit()
   {
    SPBRG= 25  ;
    TXSTA= 0xa6;     //主模式,发送8位,发送使能,异步,[H]
    RCSTA= 0xb0;     //串口使能,8位,单字使能,连续接收使能
    TRISC6= 1;
    TRISC7= 1;
   }
void TMR1init(void)
{
TMR1CS=0;
TMR1ON=1;
TMR0IE=1;
}

void main()
{
unsigned  char  errflag, i=0,recdata[256];
unsigned int tep;
    overflag=0;  
    errflag=0;
    TXEN=1;
    CREN=1;
while(!RCIF);
  for(; ;)   
       {        
        RCREG=RCREG;
        recdata[i]=RCREG;
        i++;
        TMR1init();
        TMR1H=0xF4;
        TMR1L=0x47;                //3ms interrupt;
        while(!RCIF)
            { if(overflag==1)
              break;
            }
        if (overflag==0)
            {
             tep=TMR1H;
             tep<<=8;
             tep+=TMR1L;
             if (tep<0xF82F);
             else
                 errflag=1;
             }
        else  break;   
       if (errflag==1)
          break;
       }

}
void interrupt ISR(void) //interrrupt
   {
    if (TMR1IE && TMR1IF)
       {
       TMR1IF = 0;
       overflag=1;
       }
   }
作者: winnie    时间: 2009-3-28 10:45
可能是BANK0的空间不够用了
把定义在BANK0中的变量转移出一部分,放到BANK1或者BANK2中,试一下吧,问题可能会解决




欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://enroobbs.com/) Powered by Discuz! X3.2