SN8P2501D编译问题请教 c语言

[复制链接]
查看5389 | 回复2 | 2015-2-7 08:37:53 | 显示全部楼层 |阅读模式
开始是使用SN8p2511 编译没问题 功能正常。由于SN8p2511停产,用SN8P2501D来代替SN8p2511,重新建了工程,将头文件改位:#include<SN8P2501d.h>,编译报错:
E:\SE\program\SE\Obj\SE.plo : error L2014 : missing interrupt entrance function(like void __interrupt [0x08] FunName(void))!
E:\SE\program\SE\Obj\SE.plo : error L1006 : internal error.

我的中断代码:
__interrupt isr (void)
{
   if((INTRQ&(1<<bit4))&&(INTEN&(1<<bit4)))
           {
          INTRQ  &= 0xEF;
          T0C = 0xF0;
          T0M |= (1<<bit7);
                  
        if(flag_ISR.flag_ON_OFF){
                ;
                }

           if(delay_20ms!=T_20ms)
                   delay_20ms++;
           if(delay_20ms>=T_20ms)
                   {
                   delay_20ms=0;
               flag_ISR._20ms_flag=1;
                   }
          

             if(delay_50ms!=T_50ms)
                         delay_50ms++;       
             if(delay_50ms>=T_50ms){
                   delay_50ms=0;
               flag_ISR._50ms_flag=1;
                   }         
                                
          

          if(delay_1s!=T_1s )
                    delay_1s++;
          if(delay_1s>=T_1s )
                  flag_ISR._1s_flag = 1;
                 
            }

      if((INTRQ&(1<<bit0))&&(INTEN&(1<<bit0)))
            {
          INTRQ  &=0xFE;
         flag_ISR.wake_up_flag=1;
         flag_ISR.flag_IO = 1;
        }
}

这个之前在2511是没问题的,参考资料也是这种学法。
请问问题出在哪里?多谢
lifei | 2015-3-26 13:28:46 | 显示全部楼层
头文件和编译选项里都选2511,烧写时选择2501D就行了。这是原厂给的方法,2501D的编译选项有问题,就算编译通过了单片机也不工作
hezhjen | 2015-5-3 12:09:47 | 显示全部楼层
对于SN8P2501D,__interrupt isr (void)需更改为void __interrupt[0x08] interrupt_isr(void)
您需要登录后才可以回帖 登录 | 注册

本版积分规则